我有需要测试的REST服务。该服务具有Spring Security身份验证,我需要在测试或模拟中将其关闭。我决定嘲笑它,因为我无法将其关闭。我为此写了@TestConfiguration
,但是现在我的上下文无法加载:
@TestConfiguration
public class TestConfig {
}
@WebMvcTest(controller = MyController.class)
@ContextConfiguration(classes = TestConfig.class)
public MyControllerTest {
@Test
public void simpleTest() {
}
}
在我的主要消息来源中,我有一些配置类可以加载其他bean,并且该类在我的测试中没有加载,并且我有一个例外:
java.lang.IllegalStateException: Failed to load ApplicationContext
我做错了什么?谁能帮我?我使用SpringBoot 2.2.0
,在该版本@WebMvcTest(secure = false)
中,由于secure
属性不再存在而无法正常工作。
答案 0 :(得分:0)
您可以尝试在测试类中覆盖安全配置:
@WebMvcTest(controller = MyController.class)
public MyControllerTest {
@Configuration
public class MyTestsSecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
//...
}
@Override
protected void configure(HttpSecurity http) throws Exception {
//...
}
}
@Test
public void simpleTest() {
}
}
也可以在这里查看:https://howtodoinjava.com/spring-boot2/testing/springboot-test-configuration/