我正在研究TDD并在我当前的项目中进行实验。 我注意到我必须在测试中复制很多断言。 这里的情况: 我Order类有两个构造函数第一个是默认的, 第二个有三个PARAMS单元测试声明重复
Order(int customerId, int typeId, decimal amount)
在OrderTests类,我检查作业运作良好
Assert.IsTrue(o.CustomerId == 5 && o.TypeId == 3 && amount == 500)
由于订单创建是复杂的过程,因此我有订单服务类和以下创建订单方法。
Order CreateOrder(int cusotmerId, int typeId, int amount, moreParams...)
OrderServiceTests类有这个方法测试,我需要用相同的断言检查订单已在CreateOrder服务正确创建。
Assert.IsTrue(o.CustomerId == 5 && o.TypeId == 3 && amount == 500)
- 是否确定有这样的测试重复?
- 在测试中提取具有相同断言的方法是否有意义,因为有时数字或重复的断言可能多于一个?或者这种方法提取使得测试不可读?
据我所知,你试图测试一个对象的创建。你为什么需要这样做?有没有复杂的逻辑? – Andrey
是的,正如我写的,它是创建对象图的复杂过程 – Danil
假设Order不是一个纯粹的值对象/数据结构(在这种情况下,它可能太小而无法/失败):你可以写一个助手方法AreAttributesEqual expectedOrder,actualOrder,listOfAttributesToCompare)'它使用反射。如果你想总是比较所有的属性,它就更简单了。 – Gishu