【发布时间】:2012-06-27 16:07:49
【问题描述】:
我正在学习 xUnit,到目前为止,我发现它是一个最有用的工具。这让我开始重新思考我对 TDD 的一些编码策略。
但是,我遇到了一个有趣的问题。我的测试用例失败了。没有真正的问题,但我该如何调试呢?
具体来说,我的测试用例由于“超出索引”错误或类似原因而失败。它没有在断言语句中失败。我现在需要的是在 Visual Studio 调试器处于活动状态的情况下运行测试用例的某种方法,以便我可以看到不同变量的状态。
我不打算发布代码,因为这种情况肯定会再次出现。有谁知道如何调试测试用例本身?
差点忘了!我正在使用,
- Visual Studio 2010 Ultimate(Dreamspark 许可证)
- xUnit 1.9
我的工作流程涉及使用 xUnit GUI 运行程序来运行测试。
如果我的要求是不可能的,有人可以建议我可以使用的替代测试套件来满足我的需求吗?
【问题讨论】:
-
其实,如果你要调试单元测试,这是一个糟糕的单元测试。测试应该设计得尽可能简单和直接,这样你就可以通过几乎不看它们来验证它的正确性。考虑重写这个测试。
-
@J0HN,有问题的错误来自我正在测试的代码,而不是单元测试。我的问题是找到它发生的原因。 xUnit 有用地告诉我第 XX 行产生了异常 YYY,但它没有告诉我任何其他信息。比如发生异常(或类似情况)时变量的状态是什么?
-
@J0HN 有些情况下单元测试本身还不错;我刚刚举了一个例子,由于 cognitive dissonance 而很难发现 ~~ 警告,这发生在项目开发的早期,并且与 SUT 中的数字文字有关转位数字;在这种情况下,单元测试 + 调试协作帮助我使 SUT 更加健壮。
标签: c# .net unit-testing debugging xunit