我有一些初始化代码来使用我的 API。初始化可能会失败,我想在 NUnit 测试中测试它。
初始化之后就可以使用API了。我也在测试 API,但我所有的测试方法都将使用相同的、通用的初始化代码。
我理想的情况是这种行为:
- 运行初始化测试。
- 如果 [1] 成功,则运行其他测试。
在 [1] 失败的所有情况下,所有其他测试也会失败。但有价值的信息是[1]失败了。这就是我最有可能发现问题的地方。如果其他测试可以用 ? 标记,那就太好了。或者其他什么,表明它们没有执行,因为它们所依赖的功能没有通过测试。
我知道测试不应该是脆弱的。但我无法回避这样一个事实:初始化代码对于正确执行其他功能是必需的。
这是一个更普遍的问题,其中某些功能依赖于其他功能。 “其他功能”过于常用,无法通过依赖它的所有测试来提供任何实际价值。如果“其他功能”单独测试会更好。
好吧,这就是我将如何解决这个问题......
将公共初始化放入安装方法中,因为所有测试都需要它。如果初始化抛出错误,您会看到
- 套件中的所有测试都失败(随着时间的推移,我已经接受过培训,将其识别为可能安装/拆卸已引发异常的提示)。
- 包含安装方法的失败测试的堆栈跟踪。
如果这对您来说太隐晦,您可以(尽管我不建议这样做)向同一个套件添加一个具有好名称的空测试。如果该测试显示为绿色,则可以确定安装/通用初始化代码已成功。
[Test]
public void VerifySetup() {}
更新:看来你有一个相当利基的要求。我不知道 NUnit 中是否有任何机制来指定此类测试的条件执行 - 例如仅当 Test1 通过时才运行 Test2 至 10。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)