我正在尝试使用 WireMockRule 来模拟远程主机的请求,但我被困了。目前我正在嘲笑本地主机的请求如下:
@Rule
public WireMockRule wireMockRule = new WireMockRule(80);
...
wireMockRule.stubFor(post(urlPathEqualTo("/api/users"))
.willReturn(aResponse()
.withStatus(200)));
这些适用于localhost。但是当我尝试做类比的时候
@Rule
public WireMockRule wireMockRule = new WireMockRule(wireMockConfig().bindAddress("remote").port(80));
它没有用,事件测试没有开始。所以我想问你们,也许有人会知道我做错了什么?感谢
答案 0 :(得分:1)
WireMockRule
始终在localhost上启动服务器。它不是为连接远程WireMock服务器而设计的。你可以从它的来源看到这一点。
要将WireMock客户端配置为针对远程服务器运行,请不要使用@Rule
。只需在构建函数中将WireMock.configureFor("my.remote.host", 8000);
放在测试的初始化中。
通常,无论您是否使用@Rule
,WireMock的设计者都希望您使用WireMock
类上的静态方法,而不是{{1}的成员方法object:
WireMockRule