我有一个针对Spring Boot微服务的集成测试。问题在于该服务在启动时会调用外部服务(通过REST)。我正在使用WireMock模拟通话。 Spring使应用程序在WireMock启动之前启动。因此,其余调用失败,服务也失败。
该调用是由我们公司也建立的图书馆发出的,因此我无法在此处进行任何更改。
您对我有什么建议吗?
最佳答案
您可以在测试中创建WireMockServer的静态实例。这是一个代码示例:
@RunWith(SpringRunner.class)
@SpringBootTest
public class YourApplicationTests {
static WireMockServer mockHttpServer = new WireMockServer(10000); // endpoint port here
@BeforeClass
public static void setup() throws Exception {
mockHttpServer.stubFor(get(urlPathMatching("/")).willReturn(aResponse().withBody("test").withStatus(200)));
mockHttpServer.start();
}
@AfterClass
public static void teardown() throws Exception {
mockHttpServer.stop();
}
@Test
public void someTest() throws Exception {
// your test code here
}
}