我知道在Junit中,类扩展TestCase不能支持@Before和@After。但它仍然允许使用@Test?
我知道没有@Test,如果我们想运行这个类,我们可以覆盖runTest方法并定义要调用的方法。这不方便。因为如果我们在这个类的方法中标记@Test,它可以直接运行。谁能告诉我关于如何用@Test调用这个类的方法的机制?
顺便说一下,如果我想在TestSuite中加入大量测试,我应该选择一个类扩展TestCase还是用@Test定义一个任意类作为单一测试类?
答案 0 :(得分:5)
TestCase类来自Junit 3,不应在Junit 4 +类中使用。
如果您扩展TestCase并使用Junit 3 Test跑步者,那么您的测试方法名称需要以" test"开头。 (Junit 3测试运行器使用Java反射来查找和调用所有以单词&#34开头的方法;测试")
依赖于TestClass阻碍了测试类的设计,因为你被迫扩展了那个使得某些东西难以测试的类。还没有任何东西等同于Junit4的@BeforeClass或@AfterClass,这意味着你必须完成所有更复杂的多测试夹具设置并自行拆除。
要一次运行许多Junit4测试类作为Test Suite,您可以使用@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{
}