【发布时间】:2026-01-06 03:55:01
【问题描述】:
是否可以在具有使用@Before 注释的方法的类中运行JUnit @Test 方法,但仅在此测试中忽略@Before 方法?
编辑:我对 JUnit 是否支持此功能感兴趣,而不是解决方法。我知道一些变通方法,例如在另一个类中移动测试或删除注释并在每个测试方法中手动调用 setUp()。
假设在一个类中有 30 个测试,其中 29 个 @Before 确实简化了测试初始化,但其中一个(或多个)是无用的/它使事情复杂化。
public class MyTestClass {
@Before
public void setUp() {
//setup logic
}
@Test
public void test1() {
//[...]
}
@Test
public void test2() {
//[...]
}
//more tests here
@Test(ignoreBefore = true, ignoreAfter = true //false by default)
//something equivalent to this
public void test20() {
//[...]
}
}
【问题讨论】:
-
你可以在没有
@Before和@After注释的情况下将test20移动到单独的类中吗? -
@user1516873 技术上是的,但我想将一个类的所有测试保留在一个测试类中。在设计/开发课程时,没有考虑测试,重构也不是解决方案。此外,单元测试的定义表明它们是独立的,可以单独运行。
标签: java unit-testing junit