【发布时间】:2018-04-25 10:17:25
【问题描述】:
我正在尝试验证我向 WireMock 服务器发出的请求,但我收到一条错误消息,指出请求不完全匹配。唯一不匹配的位是“Content-Type: plain\text”位。
请看下面我的代码:
public class WeatherApplicationTest {
@Rule
public WireMockRule wireMockRule = new WireMockRule(8080);
// public WireMockServer wireMockServer = new WireMockServer(8090); //No-args constructor will start on port 8080, no HTTPS
@BeforeClass
public static void setUpClass() {
//wireMockServer.start();
}
@AfterClass
public static void tearDownClass() {
//wireMockServer.stop();
}
@Test
public void statusMessage() throws IOException{
wireMockRule.start();
stubFor(get(urlEqualTo("/user/1"))
.willReturn(aResponse()
.withStatus(200)
.withStatusMessage("Everything is fine")
.withHeader("Content-Type","text/plain")));
HttpClient client = new DefaultHttpClient();
HttpClient client2 = new DefaultHttpClient();
HttpGet request = new HttpGet("http://localhost:" + wireMockRule.port() +
"/user/1");
HttpResponse response = client.execute(request);
HttpGet request2 = new HttpGet("http://localhost:" + wireMockRule.port() +
"/some/else");
HttpResponse response2 = client2.execute(request2);
assertThat(response.getStatusLine().getStatusCode(), is(200));
assertThat(response2.getStatusLine().getStatusCode(), is(404));
verify(getRequestedFor(urlEqualTo("/user/1"))
.withHeader("Content-Type", equalTo("text/plain")));
wireMockRule.stop();
}
}
这是我收到的错误消息:
没有完全匹配的请求。最相似的请求是:预期:
内容类型:文本/纯文本
但是:
【问题讨论】:
-
有人有什么建议吗?
-
不要打电话给
wireMockRule.start() or .stop(),这是规则为你做的。