4

我有两个正在测试的类(我们称它们为 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 {
}
4

2 回答 2

9

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

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

我建议你试试mockito !

于 2010-03-22T03:52:02.920 回答
0

您应该尝试允许这种依赖测试的testng框架。

于 2010-03-22T04:17:10.160 回答