2

我知道在 Junit 中,类扩展 TestCase 不能支持 @Before 和 @After。但它仍然允许使用@Test?

我知道没有@Test,如果我们想运行这个类,我们可以重写runTest 方法并定义要调用的方法。这不方便。因为如果我们在这个类的方法中标记@Test,它就可以直接运行。谁能告诉我有关如何使用 @Test 调用有关此类的方法的机制?

顺便说一句,如果我想将大量测试放入一个 TestSuite 中,我应该选择一个扩展 TestCase 的类还是使用 @Test 定义一个任意类作为单个测试类?

4

1 回答 1

5

TestCase 类来自 Junit 3,不应在 Junit 4 + 类中使用。

如果您扩展 TestCase,并使用 Junit 3 测试运行器,那么您的测试方法名称需要以单词“test”开头。(Junit 3 测试运行器使用 Java 反射来查找和调用所有以单词“test”开头的方法)

依赖 TestClass 阻碍了测试类的设计,因为您被迫扩展该类,这使得某些东西难以测试。也没有任何与 Junit4 的 @BeforeClass 或 @AfterClass 等效的东西,这意味着您必须自己设置和拆除所有更复杂的多测试夹具。

要将多个 Junit4 测试类作为测试套件一次运行,您可以使用 @RunWith 和 @SuiteClasses 注释创建一个新的空类,如下所示:

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

@RunWith(Suite.class)
@SuiteClasses(
{
   TestClassA.class,
   TestClassB.class

}
)

public class MyTestSuite{

}
于 2013-08-13T18:31:26.220 回答