我已经定义了wireMock服务器如下: -
private WireMockServer wireMockServer;
@Before
public void preSetup() throws Exception {
wireMockServer = new WireMockServer(56789);
wireMockServer.start();
};
@Override
@After
public void tearDown() {
wireMockServer.stop();
}
@Test
public void testSendMatchingMessage() throws Exception {
wireMockServer.stubFor(get(urlEqualTo("/orders/v1/ordersearch/"))
.willReturn(aResponse().withStatus(200).withBody("<response>Some content</response>")));
}
但每当我点击下面的网址时
http://0.0.0.0:56789/orders/v1/ordersearch/?field=address%2Cfinance%2Cshipping&limit=10&page=2&q=createdFrom.gt%7E2016-01-11T10%3A12%3A13
我收到以下错误: -
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
<title>Error 404 NOT_FOUND</title>
</head>
<body><h2>HTTP ERROR 404</h2>
<p>Problem accessing /__files/orders/v1/ordersearch/. Reason:
<pre> NOT_FOUND</pre></p><hr /><i><small>Powered by Jetty://</small></i><br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
</body>
</html>
有人可以让我知道我做错了什么吗?
根据Stubbing - Wiremock(谷歌中的第一个“wiremockserver urlequalto”):
注意:您必须使用
urlPathEqualTo
或urlPathMatching
指定路径,因为urlEqualTo
或urlMatching
将尝试匹配整个请求URL,包括查询参数。
对于试图将Wiremock添加到Android应用程序并偶然发现此问题的任何人:
如果您在进行网络呼叫后运行模拟,则无法运行。这可能看起来很明显,但我被绊倒了。
当您运行Espresso测试时,默认情况下,活动测试规则立即启动活动,因此活动在我的模拟代码实际运行之前触发并拉动其配置数据。我看到了与OP相同的错误。
修复方法是让您的活动测试规则最初不启动,然后模拟您的数据,并在您完成所有操作后告诉活动。