将SpringBootTest批注与WebEnvironment一起使用时出现NullPointerException

时间:2016-08-30 21:25:36

标签: spring-boot spring-test spring-test-mvc

我正在使用import collections graph = collections.defaultdict(lambda: {'g': [], 's': False, 't': None, 'u': None }) for line in ... : k, v = map(int, line.split()) graph[v]['g'].append(k) 。这是我的测试类

spring-boot 1.4.0.RELEASE

当我运行此测试时(尽管它现在什么都不做),由于@RunWith(SpringRunner.class) @SpringBootTest(webEnvironment= WebEnvironment.RANDOM_PORT) @WebAppConfiguration public class ApplicationTests { @Test public void contextLoads() { } } (下面的堆栈跟踪),测试启动失败

但是,如果我删除NullpointerException,一切看起来都不错。

堆栈跟踪:

webEnvironment= WebEnvironment.RANDOM_PORT

1 个答案:

答案 0 :(得分:6)

您不需要@WebAppConfiguration使用Spring Boot 1.4的测试支持。

所以只需删除@WebAppConfiguration,然后再删除......

  • 如果您想要模拟WebApplicationContext - 例如,使用MockMvc - 请使用@SpringBootTest和默认webEnvironmentWebEnvironment.MOCK
  • 如果您希望您的Web应用程序实际部署在嵌入式Servlet容器中 - 例如,使用TestRestTemplate进行测试 - 请使用@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)@SpringBootTest(webEnvironment = WebEnvironment.DEFINED_PORT)