小编per*_*oro的帖子

SpringBootTest - 如果上下文加载失败如何断言

我编写了一个ApplicationListener来检查上下文初始化期间是否准备好环境。由于我在configure()main()方法中手动添加侦听器,因此我在测试该场景时遇到了问题。

应用程序监听器类:

public class EnvironmentPrepared implements ApplicationListener<ApplicationEnvironmentPreparedEvent> {

        @Override
    public void onApplicationEvent(ApplicationEnvironmentPreparedEvent event) {
            //code that checks if conditions are met

            if (checkTrue) {
            throw new RuntimeException();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

主要类别:

    public class MyApp extends SpringBootServletInitializer {

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        setRegisterErrorPageFilter(false);
        return application.listeners(new EnvironmentPrepared()).sources(MyApp.class);
    }

    public static void main(String[] args) {
        SpringApplication springApplication = new SpringApplication(MyApp.class);
        springApplication.addListeners(new EnvironmentPrepared());
        springApplication.run(args);
    }
}
Run Code Online (Sandbox Code Playgroud)

我要执行的测试:

@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
@ContextConfiguration(loader = OverriddenProfilesTest.CustomLoader.class)
public class …
Run Code Online (Sandbox Code Playgroud)

integration-testing listener spring-boot spring-boot-test

5
推荐指数
1
解决办法
1539
查看次数