我有两个正在测试的类(我们称它们为 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 {
}
最佳答案
您的单元测试不应依赖于其他测试。
您的问题的一种解决方案是在 ClassA 的测试中模拟 ClassB,以便独立于 ClassB 的测试结果测试其行为。
我建议你给 mockito一试!
关于unit-testing - 从另一个 JUnit 测试类运行 JUnit 测试类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2489927/