我知道在Junit中,扩展TestCase的类不支持@Before和@After。但它仍然允许使用@Test?
我知道如果没有@Test,如果我们想运行这个类,我们可以重写runTest方法并定义要调用的方法。这不方便。因为如果我们在这个类的方法中标记@Test,就可以直接运行。谁能告诉我如何用@Test调用这个类的方法的机制?
顺便说一句,如果我想将大量测试放入 TestSuite 中,我应该选择一个扩展 TestCase 的类还是使用 @Test 定义一个任意类作为单个测试类?
最佳答案
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{
}
关于junit - 为什么Junit仍然允许类扩展TestCase在其中使用注释@Test?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18216388/