![]() |
1
2
RoyOsherove在他的《单元测试的艺术》一书中谈到了这个问题。他也赞成在单元测试中只测试一个事实,但他指出,这并不总是意味着只有一个断言。在这种情况下,您正在测试
但是,如果您真的想要分割断言(例如,如果您正在测试需要类似设置但逻辑上不相同的各个方面),那么您可以这样做,而不需要太多的努力:
也可以说,由于这些测试需要相同的设置,它们应该有自己的夹具,并有一个
|
![]() |
2
3
对我来说,这似乎也很极端,这就是为什么我还为每个测试编写多个断言的原因。我已经有了500个测试,每个测试只写一个断言就可以将其放大到至少2500个,而我的测试需要10分钟才能运行。 由于一个优秀的REST运行者(如Resharper)可以让您看到测试很快失败的线路,所以您仍然可以很容易地理解为什么测试失败。如果您不介意额外的工作,您还可以添加断言描述(“断言工资单编号正确”),这样您甚至可以在不查看源代码的情况下看到这一点。有了这一点,每个测试只剩下一个断言就没有什么理由了。 |
![]() |
3
1
我使用一个助手类来包含断言。这使测试方法保持整洁,并将重点放在它们实际试图建立的内容上。它看起来像:
|
|
wavesinaroom · 断言结构向量长度 5 月前 |
![]() |
Tim Kirkwood · 比较空数据帧 6 月前 |
![]() |
Kamran Khan · 使用单元测试ASP。NET核心 10 月前 |
![]() |
paymer · 为什么我的代码没有删除我的单元测试生成的zip文件? 11 月前 |
![]() |
Ricky Mo · 角度测试如何模拟导入的const 11 月前 |
![]() |
Natty · Visual Studio中缺少“代码覆盖率结果” 1 年前 |