因此参考文档建议
@BeforeEach
void setup( WebApplicationContext wac) {
this.mockMvc = MockMvcBuilders.webAppContextSetup( wac )
.apply( SecurityMockMvcConfigurers.springSecurity() )
.alwaysDo( print() )
.build();
}为什么不把它作为构造函数注入来做呢?(我还没有试过,我只是假设它不会立即爆炸)
@Autowired
MyControllerTest(
@NonNull WebApplicatonContext wac
) {
this.mockMvc = MockMvcBuilders.webAppContextSetup( wac )
.apply( SecurityMockMvcConfigurers.springSecurity() )
.alwaysDo( print() )
.build();
}发布于 2020-12-28 23:13:13
在SpringExtension中使用JUnit Jupiter时,您是选择构造函数注入、方法注入还是字段注入,这是一个喜好问题。
参考手册中的示例简单地展示了使用@BeforeEach方法的一种方法,因为许多人都熟悉在“之前”方法中执行测试设置。
还可以在测试类构造函数中设置MockMvc实例,如果愿意,还可以将mockMvc字段设置为final。
在this commit中,我更新了Spring自己的测试套件中的一个测试类,以便在实践中演示其中一些技术。
请注意,如果测试类构造函数接受与ApplicationContext兼容的单个参数,则它不需要使用@Autowired注释。
https://stackoverflow.com/questions/65443714
复制相似问题