【发布时间】:2011-02-04 19:00:16
【问题描述】:
我们的工具包有超过 15000 个JUnit 测试,如果其他测试失败,许多测试都会失败。例如,如果方法 X.foo() 使用来自 Y.bar() 的功能并且 YTest.testBar() 失败,那么 XTest.testFoo() 也会失败。显然,XTest.testFoo() 也可能因为 X.foo() 特有的问题而失败。
虽然这很好,而且我仍然希望两个测试都运行,但如果可以使用指向 YTest.testBar() 的 XTest.testFoo() 来注释测试依赖关系,那就太好了。这样,我们可以立即看到 X.foo() 使用的哪些功能也失败了,哪些没有。
在 JUnit 或其他地方有这样的注解吗?比如:
public XTest {
@Test
@DependsOn(method=org.example.tests.YTest#testBar)
public void testFoo() {
// Assert.something();
}
}
【问题讨论】:
-
这是一个古老的线程,但是:如果 X.foo() 使用 Y.bar(),则测试必须(!)模拟 Y.bar(),否则您的测试不是单元测试(但是一个集成测试)。单元测试的整个想法是没有任何依赖关系。但是,我来这里是有原因的 ;-)
标签: java unit-testing junit