Ozi*_*ile 1 java spring spring-boot
我知道当弹出组件弹出时,Spring Boot在加载上下文时遇到问题.我在这里读到了如何成功加载上下文.但是,集成测试怎么样?
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = MyApplication.class)
public class DemoApplicationTests {
@Test
public void contextLoads() {
}
}
Run Code Online (Sandbox Code Playgroud)
public static void main(String[] args) {
try(ConfigurableApplicationContext context = new SpringApplicationBuilder
(DesktopAppConfig.class)
.headless(false).run(args)) {
}
Run Code Online (Sandbox Code Playgroud)
@Configuration
public class DesktopAppConfig {
@Bean
public Object someBean() {
JOptionPane.showMessageDialog(null, "message");
return new Object();
}
}
Run Code Online (Sandbox Code Playgroud)
这个简单的集成测试会抛出一个java.awt.HeadlessException,我无法在Spring Boot引用中找到任何通过集成测试将上下文设置为无头的方法.
您可以SpringApplication通过自定义自定义集成测试所使用的SpringApplicationContextLoader.您应该使用和属性来配置自定义上下文加载器,而不是使用@SpringApplicationConfiguration哪个配置使用默认值:SpringApplicationContextLoader@ContextConfigurationloader
@ContextConfiguration(classes = MyApplication.class, loader=CustomSpringApplicationContextLoader.class)
Run Code Online (Sandbox Code Playgroud)
在您的CustomSpringApplicationContextLoader实现中,覆盖getSpringApplication()并设置headless为false:
public class CustomSpringApplicationContextLoader extends SpringApplicationContextLoader {
@Override
protected SpringApplication getSpringApplication() {
return new SpringApplicationBuilder().headless(false).build();
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
919 次 |
| 最近记录: |