Wiremock为一个存根网址返回404

问题描述 投票:10回答:2

我已经定义了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>

有人可以让我知道我做错了什么吗?

wiremock
2个回答
18
投票

根据Stubbing - Wiremock(谷歌中的第一个“wiremockserver urlequalto”):

注意:您必须使用urlPathEqualTourlPathMatching指定路径,因为urlEqualTourlMatching将尝试匹配整个请求URL,包括查询参数。


2
投票

对于试图将Wiremock添加到Android应用程序并偶然发现此问题的任何人:

如果您在进行网络呼叫后运行模拟,则无法运行。这可能看起来很明显,但我被绊倒了。

当您运行Espresso测试时,默认情况下,活动测试规则立即启动活动,因此活动在我的模拟代码实际运行之前触发并拉动其配置数据。我看到了与OP相同的错误。

修复方法是让您的活动测试规则最初不启动,然后模拟您的数据,并在您完成所有操作后告诉活动。

© www.soinside.com 2019 - 2024. All rights reserved.