我团队中的一些程序员有时会编写调用方法的单元测试,得到结果但忘记调用正确的Assert
方法来实际检查发生了什么。
我想知道是否有任何配置可以强制MSTest在没有验证的情况下使测试失败。我记得在DUnit中看过类似的东西,但在Visual Studio中找不到它。
答案 0 :(得分:3)
查看Test-Lint from Roy Osherove和co。它是测试代码的静态代码分析。
我曾经尝试过一次,当它出现在公共alpha / beta时......表现非常好。但是没有尝试这个特定的需求。我不认为MSTest或大多数单元测试框架会防止这种开箱即用。
aquinas也有一个有效的评论。教育可能比检查和坚持更好。您甚至可以创建自定义规则来捕获流氓断言。检查工具。
从该工具的主页
它检测到哪些问题?
目前,Test Lint发现了一系列常见问题:
*在测试中缺少断言
答案 1 :(得分:2)
我没有听说过这样的功能。没有Asserts的单元测试只是测试不会抛出任何错误,通常每次都会传递错误。
我很惊讶您的程序员实际上是在没有Asserts的情况下编写测试,这看起来非常不专业。我建议他们指点阅读一些关于测试驱动开发的在线课程,通常你会编写一个测试失败,然后进行编程更改以使其通过(在这种情况下,Assert.IsTrue(true)甚至不会开始有道理。
还提供模板:
[Test]
public void TestCase
{
//Setup
//Run Test
//Process Results
//Assert
}
我强烈建议购买此截屏视频: http://tekpub.com/productions/ft_tdd_wilson
它提供了如何编写单元测试以及如何正确遵循TDD的好主意。