Java Wiremock 错误 - 此 WireMock 实例中没有存根映射。

bluesky1年前 ⋅ 99 阅读

ChatGPT的回答仅作参考:

这个错误通常是因为您没有为 WireMock 实例设置任何存根映射。在使用 WireMock 进行测试时,您需要为您的测试设置一些存根映射,以模拟您的应用程序的行为。

要解决此错误,您需要创建一个存根映射并将其添加到 WireMock 实例中。以下是一个示例:

```
import static com.github.tomakehurst.wiremock.client.WireMock.*;

public class MyTest {

    @Rule
    public WireMockRule wireMockRule = new WireMockRule();

    @Test
    public void testMyApp() {
        // 创建一个存根映射
        stubFor(get(urlEqualTo("/myapp"))
                .willReturn(aResponse()
                        .withStatus(200)
                        .withBody("Hello World!")));

        // 发送请求并验证响应
        String response = new HttpClient().get("http://localhost:" + wireMockRule.port() + "/myapp");
        assertEquals("Hello World!", response);
    }
}
```

在这个示例中,我们创建了一个存根映射,该映射将匹配 URL 为 "/myapp" 的 GET 请求,并返回一个状态码为 200 的响应,响应正文为 "Hello World!"。我们还使用 WireMockRule 类创建了一个 WireMock 实例,并将其传递给我们的测试方法中。

请注意,我们在测试方法中使用了 wireMockRule.port() 方法来获取 WireMock 实例的端口号。这是因为 WireMockRule 类会自动为您分配一个可用的端口号,并将其绑定到 WireMock 实例上。

一旦您创建了一个存根映射并将其添加到 WireMock 实例中,您就可以使用 HttpClient 或其他 HTTP 客户端库来发送请求并验证响应了。

全部评论: 0

    相关推荐