gpt4 book ai didi

junit - 为什么 Junit 仍然允许扩展 TestCase 的类在其中使用 @Test 注解?

转载 作者:行者123 更新时间:2023-12-02 04:54:40 25 4
gpt4 key购买 nike

我知道在 Junit 中,extend 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com