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

时间:2010-03-22 03:48:01

标签: unit-testing junit 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 {
}

2 个答案:

答案 0 :(得分:9)

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

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

我建议你试试mockito

答案 1 :(得分:0)

您应该尝试允许此类依赖性测试的testng框架。

相关问题