JUnit:@Before仅适用于某些测试方法?@Nested + @BeforeEach
2022-08-31 14:48:55
我有一些常见的设置代码,我已经分解为标有.但是,不必针对每个测试运行所有这些代码。有没有办法标记它,使该方法仅在某些测试之前运行?@Before
@Before
我有一些常见的设置代码,我已经分解为标有.但是,不必针对每个测试运行所有这些代码。有没有办法标记它,使该方法仅在某些测试之前运行?@Before
@Before
只需将不需要设置代码的测试移出到单独的测试类中即可。如果您有一些其他与测试通用的代码,这些代码有助于保留,请将其移出到帮助程序类中。
完全同意将相关代码移动到内部类的观点。所以在这里我做了什么。
代码如下:
class Testing {
@Test
public void testextmethod1() {
System.out.println("test ext method 1");
}
@Nested
class TestNest{
@BeforeEach
public void init() {
System.out.println("Init");
}
@Test
public void testmethod1() {
System.out.println("This is method 1");
}
@Test
public void testmethod2() {
System.out.println("This is method 2");
}
@Test
public void testmethod3() {
System.out.println("This is method 3");
}
}
@Test
public void testextmethod2() {
System.out.println("test ext method 2");
}
}
这是输出
test ext method 1
test ext method 2
Init
This is method 1
Init
This is method 2
Init
This is method 3
注意:我不确定Junit4是否支持此功能。我在JUnit5中执行此操作