从另一个JUnit测试类运行JUnit测试类

Dav*_*son 4 junit unit-testing junit4 test-suite

我有两个我正在测试的类(让我们称之为ClassA和ClassB).每个都有自己的JUnit测试类(分别是testClassA和testClassB).

ClassA因其正常运行而依赖于ClassB,因此我想确保ClassB在运行testClassA之前通过其测试(否则testClassA的结果将毫无意义).

做这个的最好方式是什么?在这种情况下,它是一个赋值,所以我需要将它保留在两个指定的测试类中,如果可能的话.

如果testClassB的测试未全部通过,我可以/应该从testClassA抛出异常吗?这将要求testClassB以不可见的方式运行,只需向testClassA报告其成功/失败,而不是向GUI(通过JUnit)报告.

我正在使用Eclipse和JUnit 4.8.1

更新:到目前为止,我所管理的最好的是带有测试套件的单独文件,如下所示.这仍然不是我所追求的,因为如果ClassA未通过某些测试,它仍然允许运行ClassB测试.

import org.junit.runner.RunWith;
import org.junit.runners.Suite;

@RunWith(Suite.class)
@Suite.SuiteClasses({testClassA.class, testClassBCode.class})
public class testClassB {
}
Run Code Online (Sandbox Code Playgroud)

mgv*_*mgv 9

您的单元测试不应该依赖于其他测试.

您的问题的一个解决方案是在ClassA的测试中模拟ClassB,以便独立于ClassB的测试结果测试其行为.

我建议你尝试一下mockito!