如果没有Asserts,我可以强制单元测试失败吗?

时间:2012-08-27 20:22:03

标签: unit-testing mstest

我团队中的一些程序员有时会编写调用方法的单元测试,得到结果但忘记调用正确的Assert方法来实际检查发生了什么。

我想知道是否有任何配置可以强制MSTest在没有验证的情况下使测试失败。我记得在DUnit中看过类似的东西,但在Visual Studio中找不到它。

2 个答案:

答案 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的好主意。