经过几个小时的谷歌研究后我仍然不知道如何使用@DirtiesContext
with @Nested
类。假设以下集成测试类:
@ExtendWith(SpringExtension.class)
@SpringBootTest
@AutoConfigureMockMvc(addFilters = false)
public class StuffIntegrationTests {
@Autowired
private StuffRepository stuffRepository;
@Autowired
private WebApplicationContext context;
private MockMvc mvc;
// ...
@BeforeEach
private void setUp() {
mvc = MockMvcBuilders
.webAppContextSetup(context)
.apply(springSecurity())
.build();
// ...
}
@DisplayName("POST - /stuffs")
@Nested
class saveStuff{
@DisplayName("Return 2xx")
@Nested
class Return2xx{
// some test methods
@DisplayName("Return 4xx")
@Nested
class Return4xx{
// some tests methods
}
@DisplayName("GET - /stuffs/{stuffId}")
@Nested
class findStuffById{
@DisplayName("Return 2xx")
@Nested
class Return2xx{
// some test methods
@DisplayName("Return 4xx")
@Nested
class Return4xx{
// some tests methods
}
}
正如您所看到的,我希望通过按端点将其拆分为嵌套类来使该类更具可读性,并且对于每个端点,都有可按 Http 响应状态拆分的嵌套类。
我尝试使用@DirtiesContext(classMode = DirtiesContext.ClassMode.BEFORE_CLASS)
在多个级别上,它不会在每个类之前清理 Spring Context,如果我输入,结果是相同的@DirtiesContext(methodMode = DirtiesContext.MethodMode.BEFORE_METHOD)
在每个方法上。
我的目标是在类的每个方法之前清理 Spring ContextSaveStuff
并且只在课程开始时清理一次上下文findStuffById
非常感谢你的帮助。
Spring 不支持从 JUnit Jupiter 的封闭类继承测试配置@Nested
测试类直到 Spring Framework 5.3。
有关详细信息,请参阅@Nested测试类配置 https://docs.spring.io/spring-framework/docs/current/reference/html/testing.html#testcontext-junit-jupiter-nested-test-configurationSpring 参考手册的部分。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)