我有两个Spring Boot REST微服务,让他们称之为A和B.我们也假设A对B进行REST调用。
我想在单个JUnit测试中在A和B之间test the integration。也就是说,我想编写一个测试,确保从A到B的通信和配置是有序的。
我知道我可以在Spring"内置"中运行一个微服务。在我的测试中使用@SpringBootTest
注释测试Web服务器。
是否可以以类似的方式在一次测试中同时运行A和B?
答案 0 :(得分:4)
我认为通过从我的JUnit测试中删除@SpringBootTest
并使用SpringApplicationBuilder
实例化两个微服务,我已经成功了。
A是Demo1Application
,B是Demo2Application
:
@Test
public void test1() {
HashMap<String, Object> props1 = new HashMap<>();
props1.put("server.port", 8092);
SpringApplicationBuilder builder1 = new SpringApplicationBuilder(Demo1Application.class);
builder1
.properties(props1)
.run(new String[]{""});
HashMap<String, Object> props2 = new HashMap<>();
props2.put("server.port", 8093);
SpringApplicationBuilder builder2 = new SpringApplicationBuilder(Demo2Application.class);
builder2
.properties(props2)
.run(new String[]{""});
}