1 回答
TA贡献1865条经验 获得超7个赞
JUnit 4
如果您需要坚持使用 JUnit 4,可以使用第三方插件来提供支持。
将依赖项添加到您的项目中,并HeirachalContextRunner
像这样使用:
@RunWith(HierarchicalContextRunner.class)
public class NestedTest {
@ClassRule
public static final SpringClassRule SPRING_CLASS_RULE = new SpringClassRule();
@Rule
public final SpringMethodRule springMethodRule = new SpringMethodRule();
@Before
public void setup() {
// General test-suite setup
}
public class NestedClass {
@Test
public void testSomething() {
// Test
}
public class AnotherNestedClass {
@Test
public void testSomethingElse() {
// Test
}
}
}
}
请注意,我们不需要在这里指定 Spring 的运行器。相反,我们使用规则来应用 Spring 测试框架,从Spring 4.2.
JUnit 5
可以说,一个更具前瞻性的解决方案是升级到JUnit 5. 然后您可以使用注释直接构建测试用例@Nested。见下文:
@SpringBootTest
@ExtendWith(SpringExtension.class)
class MyNestedTest {
@BeforeAll
void setup() {
// General test-suite setup
}
@Nested
@DisplayName("parentTestSuite")
class NestedClass {
@Test
void testSomething() {
// Test
}
@Nested
@DisplayName("childTestSuite")
class AnotherNestedClass {
@Test
void testSomethingElse() {
// Test
}
}
}
}
请注意,@RunWith
已替换为@ExtendWith
in JUnit 5
。如果您选择迁移到 JUnit 5,您可能会发现阅读Baeldung 的 JUnit 5 迁移指南很有用。
添加回答
举报