我目前正在使用 TDD 编写测试,并且遇到了一些查询。
通常在编写单元测试时,我总是习惯于每个单元测试使用 1 个断言,因为这被定义为良好实践,并且很容易看出你的测试失败的原因。
在 TDD 中,做同样的事情是否也是一种好习惯,如果是这种情况,那么使用 TDD 有效地设计 1 种方法我最终会得到超过 1 个单元测试——因为我实际上需要超过 1 个断言。
另一个问题是我实际上断言了什么?
我可以断言我认为返回对象可能是什么?
所以我必须创建返回类型(可能很复杂,有很多属性)并确保这些在断言上匹配,这在技术上可能是 1 断言。
或者另一种方法是确保我在此过程中制作的模拟实际上被称为即最小起订量我可以执行以下操作
myServiceMock.Verify(x => x.ItemsReceived(), Times.Once());
所以我可以确保在我的模拟中只调用一次方法,这实际上被归类为断言。所以它回到原始查询,每个单元测试 1 个断言,所以我需要创建额外的单元测试以确保调用其他模拟上的其他方法。
其他人在这里做什么?
您是否断言在模拟上调用方法或返回的值是您所期望的。
真的很期待任何人对此的任何意见。