当前位置: 首页 > 知识库问答 >
问题:

Android, WireMock.stub对于不返回存根响应

濮阳征
2023-03-14

我想在Android应用程序发送包含 /api/Profile/Favorite的超文本传输协议请求时返回存根响应?value={"ID": 11821}

所以这是我的测试(使用WireMock框架)

@RunWith(AndroidJUnit4.class)
public class ContactsFragmentTransportTest extends ActivityInstrumentationTestCase2 {
    public ContactsFragmentTransportTest() {
        super(ContactsFragment.class);
    }

    @Rule
    public ActivityTestRule<MainActivity> mActivityRule = new ActivityTestRule<>(MainActivity.class, true, false);


    @Before
    @Override
    public void setUp() throws Exception {
        super.setUp();     

        WireMockServer wireMockServer = new WireMockServer(wireMockConfig().port(8089));
        wireMockServer.start();
        WireMock.configureFor("127.0.0.1", wireMockServer.port());
    }

    @Test
    public void testSendRequestEspresso() throws Exception {
        stubFor(get(urlMatching("/api/Profile/Favorite?value=%7B%22ID%22%3A11821%7D"))
                .willReturn(aResponse()
                        .withStatus(200)
                        .withBody("{This_is_mock_response}")));

        // some code that send http request
    }
}

但是当我开始测试方法测试发送请求浓缩咖啡时,我得到了正式服的生产响应。

这里请求来自Android设备:

http://mycompany.com/api/Profile/Favorite?value=%7B%22ID%22%3A11821%7D

这里回应:

 StatusCode = 200
 HEADERS = 

 [Cache-Control = no-cache]
 [Connection = Keep-Alive]
 [Content-Length = 41]
 [Content-Type = application/json; charset=utf-8]
 [Date = Thu, 29 Jun 2017 14:10:42 GMT]
 [Expires = -1]
 [Pragma = no-cache]
 [Server = Microsoft-IIS/8.5]
 [X-Android-Received-Millis = 1498745395359]
 [X-Android-Response-Source = NETWORK 200]
 [X-Android-Selected-Protocol = http/1.1]
 [X-Android-Sent-Millis = 1498745395320]
 [X-AspNet-Version = 4.0.30319]
 [X-Powered-By = ASP.NET]


 BODY = {"Code":"CodeSuccess","Message":"Succes"}

正如你所看到的,我没有得到存根响应:{This_is_mock_response}从WireMock。为什么?

共有1个答案

何浩荡
2023-03-14

您请求的baseurl应该是http://127.0.0.1:8089。因为那是你正确的模仿?我错过了什么吗?

 类似资料:
  • 我在获取一个sinon存根以返回/解析另一个sinon存根时遇到问题。我正在使用西农、柴、柴和摩卡。 我正在按顺序执行许多异步任务,我想测试的代码看起来像这样: 我尝试为此创建存根的尝试如下所示: “saveit”方法在Terminal.prototype,这就是为什么我需要在那里存根它。当我尝试运行它时,我收到错误消息: 在线上: 但如果我在控制台中转储终端对象,它看起来很好,就像任何其他存根对

  • 我想在spring boot中,当响应对象对于每个响应自动为null时返回404。 我需要建议。 我不想检查控制器中的对象是否为null。

  • 我正在用sinon和ava做测试。我正在清除一些函数,并检查这些函数是否被调用。我检查了控制台,函数正在被调用。但是sinon返回的是notCalled(。称为假)。下面是这段代码。 }; });

  • 我有下面的课,我试图测试。我遇到问题的方法是,因为我试图存根/模拟行为,然后在测试中验证行为。

  • 我有一个简单的用例,服务器为请求返回Etag,并将该Etag作为标头(即)添加到所有后续url请求。如果响应中有变化,服务器可以用响应,否则可以用响应。对于后者,重用缓存中的响应是有意义的。但是okhttp总是返回作为缓存响应。 我做了一些故障排除,okhttp在内部将响应写入磁盘,但是不会将其返回到。仔细研究类,有一些文档明确说明不会使用缓存: 编辑-更正,Okhttp正确地添加了etag标头。

  • 问题内容: 我正在构建一个UI,并且都是在XML中静态定义的。它的所有位置都具有重量,虽然看起来正确,但我想看到所有东西实际上都具有正确的高度。问题是,无论我在哪里为格式布局调用.getHeight(),都得到0。我在onCreate()和onStart()中都尝试过。一样。也会发生所有UI对象。任何想法? XML: 问题答案: 简而言之,视图尚未在onCreate(),onStart()或onR