我有几个弹簧启动应用程序的实例,它与DB同时进行一些工作。每个实例都在单独的JVM中运行 这是用Java编写测试以在一个JVM上测试它的方法吗?如下:
每个实例都有自己的上下文和类路径。
我认为我可以通过一些shell脚本方案实现这一点,但我想用Java实现它
这里最好的方法是什么?
答案 0 :(得分:5)
您可以使用不同的端口多次运行它们。
我做了类似的事情
@RunWith(SpringJUnit4ClassRunner.class)
public class ServicesIntegrationTest {
private RestTemplate restTemplate = new RestTemplate();
@Test
public void runTest() throws Exception {
SpringApplicationBuilder uws = new SpringApplicationBuilder(UserWebApplication.class)
.properties("server.port=8081",
"server.contextPath=/UserService",
"SOA.ControllerFactory.enforceProxyCreation=true");
uws.run();
SpringApplicationBuilder pws = new SpringApplicationBuilder(ProjectWebApplication.class)
.properties("server.port=8082",
"server.contextPath=/ProjectService",
"SOA.ControllerFactory.enforceProxyCreation=true");
pws.run();
String url = "http://localhost:8081/UserService/users";
ResponseEntity<SimplePage<UserDTO>> response = restTemplate.exchange(
url,
HttpMethod.GET,
null,
new ParameterizedTypeReference<SimplePage<UserDTO>>() {
});
here来源。