Spring 启动集成测试网络配置
Spring boot integrationTest web configuration
正在尝试为 httpClient 实施集成测试。
HttpClient 可以使用存根 rest 控制器服务为 "other web".
发送数据
配置为:
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = {
SpringMvcApplicationConfiguration.class
, StorageConfiguration.class
, …
})
@WebIntegrationTest({"server.port=8080", "management.port=0"})
@Transactional
public class HttpSendHelperTest {
private final static Logger LOGGER = LoggerFactory.getLogger(HttpSendHelperTest.class);
@Inject
private HttpSendHelper httpSendHelper;
@Inject
private RequestMappingHandlerMapping mapping;
…
}
测试开始正确加载我配置的所有比赛。
检查 mapping.getHandlerMethods() - 地图中存在所有 uris。
默认发送测试请求url - 响应状态为 200,
但发送给其他人(从映射的 uris 尝试一些)- 响应状态为 404。
RestTemplate restTemplate = new TestRestTemplate();
restTemplate.postForEntity("http://localhost:8080/",
StubBuilder.getInspection(), String.class)
responseEntity = restTemplate.postForEntity("http://localhost:8080/stub/send",
StubBuilder.getInspection(), String.class);
请提出解决问题的方法。
解决方案
需要正确配置springBoot
@RunWith(SpringJUnit4ClassRunner.class)
@WebIntegrationTest({"server.port=8080", "management.port=0"})
@Transactional
@SpringApplicationConfiguration(classes = SpringBootApplicationForTest.class)
public class HttpSendHelperTest {
添加SpringBootApplicationForTest.class
@EnableConfigurationProperties(value =
{
StorageConfiguration.class
}
)
@EnableAutoConfiguration(exclude = {
DataSourceAutoConfiguration.class
, VelocityAutoConfiguration.class
})
@EntityScan(basePackages = {
"my.entities.path"
})
@SpringBootApplication
public class SpringBootApplicationForTest {
public static void main(String[] args) {
SpringApplication.run(SpringBootApplicationForTest.class, args);
}
}
非常感谢 Petri Kainulainen(有用的建议)。
正在尝试为 httpClient 实施集成测试。 HttpClient 可以使用存根 rest 控制器服务为 "other web".
发送数据配置为:
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = {
SpringMvcApplicationConfiguration.class
, StorageConfiguration.class
, …
})
@WebIntegrationTest({"server.port=8080", "management.port=0"})
@Transactional
public class HttpSendHelperTest {
private final static Logger LOGGER = LoggerFactory.getLogger(HttpSendHelperTest.class);
@Inject
private HttpSendHelper httpSendHelper;
@Inject
private RequestMappingHandlerMapping mapping;
…
}
测试开始正确加载我配置的所有比赛。 检查 mapping.getHandlerMethods() - 地图中存在所有 uris。
默认发送测试请求url - 响应状态为 200, 但发送给其他人(从映射的 uris 尝试一些)- 响应状态为 404。
RestTemplate restTemplate = new TestRestTemplate();
restTemplate.postForEntity("http://localhost:8080/",
StubBuilder.getInspection(), String.class)
responseEntity = restTemplate.postForEntity("http://localhost:8080/stub/send",
StubBuilder.getInspection(), String.class);
请提出解决问题的方法。
解决方案
需要正确配置springBoot
@RunWith(SpringJUnit4ClassRunner.class)
@WebIntegrationTest({"server.port=8080", "management.port=0"})
@Transactional
@SpringApplicationConfiguration(classes = SpringBootApplicationForTest.class)
public class HttpSendHelperTest {
添加SpringBootApplicationForTest.class
@EnableConfigurationProperties(value =
{
StorageConfiguration.class
}
)
@EnableAutoConfiguration(exclude = {
DataSourceAutoConfiguration.class
, VelocityAutoConfiguration.class
})
@EntityScan(basePackages = {
"my.entities.path"
})
@SpringBootApplication
public class SpringBootApplicationForTest {
public static void main(String[] args) {
SpringApplication.run(SpringBootApplicationForTest.class, args);
}
}
非常感谢 Petri Kainulainen(有用的建议)。