如何测试 SpringBootApplication 中定义的事件监听器

ivs*_*vsn 5 spring unit-testing spring-boot

尝试编写 SpringBootApplication 的测试:

@RunWith(SpringRunner.class)
@SpringBootTest(classes=Application.class)
@TestPropertySource(locations="classpath:application-test.properties")
public class PropertiesConverterTest { ...
Run Code Online (Sandbox Code Playgroud)

应用类:

@SpringBootApplication
@PropertySource("classpath:/application.properties")
public class Application {
    public static void main(String[] args) {
        SpringApplication application = new SpringApplication(Application.class);
        application.addListeners(new MyListener1());
        application.addListeners(new MyListener2());
        application.run();
    }
}
Run Code Online (Sandbox Code Playgroud)

但似乎没有一个监听器被启动。应该如何测试这种类型的功能?有可能吗?

如果更具体地说,我想测试在其中一个侦听器(ApplicationEnvironmentPreparedEvent 侦听器)中实现的属性修改功能。它确实有效,我只想写一个简单的测试。我的想法是加载 ApplicationContext 并尝试使用@Value注释或environment.getProperty("my.property.name")