我有一个针对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
    }
}

09-11 19:34