unit-testing - 单元测试显示输出

标签 unit-testing

我搜索了单元测试工具,我发现合适的一个是 NUnit,我认为它很好,但我的问题是这个工具只显示测试方法结果(通过或失败),我不仅需要显示通过或失败,还需要显示输出。如何使用 NUnit 显示输出,或者是否有其他单元测试工具也不错?如果不支持,请建议我如何解决。

欢迎所有想法

最佳答案

管道 System.Console 的输出将适用于 NUnit,但这不是您的最佳选择。

对于通过测试,您不需要查看控制台输出来验证测试是否已通过。如果你是,你做错了。测试应该是自动化和可重复的,无需人工干预。手动验证不会扩展并产生误报。

另一方面,为失败的测试提供控制台输出是有帮助的,但它只会提供可以通过附加调试器推断出的信息。将控制台日志记录添加到您的应用程序需要付出很多额外的努力,但 yield 甚微。

相反,请确保您的错误消息是有意义的。在编写测试时,请确保您的断言是明确的。始终尝试使用与您正在断言的对象非常匹配的断言,并提供一个失败消息来解释为什么测试很重要。

例如:

// very bad
Assert.IsTrue( collection.Count == 23 );

当测试失败时,上述断言并没有真正提供太多帮助。当 NUnit 格式化断言的输出时,这个断言不会帮助你,因为它会声明类似“期望 但为 ”之类的东西。

更合适的断言将提供更有意义的测试失败。
// much better
Assert.AreEqual(23, collection.Count, 
               "There should be a minimum of 23 items by default.");

这提供了更有意义的失败消息:“预期 <23> 但为 <0>:默认情况下应至少有 23 个项目。”

关于unit-testing - 单元测试显示输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5302781/

相关文章:

java - Apache Spark Streaming 的集成测试失败

.net - 如何找到 NetTcpBinding (WCF) 可用的 TCP 端口(以便服务器可以绑定(bind)到它)

c# - 最小起订量/单元测试无法捕获异常,除非单步执行代码

firebase - 使用 @firebase/testing 连接到 Firestore 模拟器

c# - 如何对这个 C# 扩展方法进行单元测试?

ios - 基于iOS版本的条件单元测试

java - Mockito - 当调用 void 方法时设置一个标志

java - 包 grails.plugins.springsecurity 在 jUnit 测试中不存在

objective-c - 启用 "Defined Module"的 Xcode 单元测试目标中没有代码完成或语法突出显示

c - 如何手动执行单元测试?