【发布时间】:2010-08-03 11:34:24
【问题描述】:
我有一些初始化代码来使用我的 API。初始化可能会失败,我想在 NUnit 测试中对其进行测试。
在初始化之后,API 就可以使用了。我也在测试 API,但我所有的测试方法都将使用相同的通用初始化代码。
如果这种行为发生,我最理想的情况是:
- 初始化测试运行。
- 如果 [1] 成功,则运行其他测试。
在 [1] 将失败的所有情况下,所有其他测试也会失败。但有价值的信息是 [1] 失败了。那是我最有可能发现问题的地方。如果其他测试可以用 ?或其他什么,表明它们没有执行,因为它们所依赖的功能没有通过测试。
我知道测试不应该是脆弱的。但我无法绕过这样一个事实,即初始化代码对于正确执行其他功能是必需的。
这是一个更普遍的问题,其中某些功能依赖于其他功能。 “其他功能”过于普遍,无法通过依赖它的所有测试失败来提供任何实际价值。最好单独测试“其他功能”。
【问题讨论】:
-
+1。我的第一个想法是涵盖您的初始化的现有测试用例已经工作。只有当你重构你的初始化代码时,你才需要重新运行这些测试用例,直到你再次变绿。我的第二个想法是闭嘴,看看其他人的想法。很可能,这将是我今天的最佳想法。
-
所有测试用例都在我们的构建服务器上运行。该套件必须能够作为一个整体运行,因为如果您只执行您认为会影响您的测试,那么很容易错过一些东西。这些是集成测试,因此一次测试不止一个类。
-
正是我的意思,但无法正确解释。
-
好的。很高兴我们有相同的想法!