首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MockWebServer不做回调

MockWebServer不做回调
EN

Stack Overflow用户
提问于 2016-05-03 15:13:16
回答 1查看 760关注 0票数 0

我正在尝试使用MockWebService测试我们的安卓应用程序。发送到服务器的请求被正确接收,但是响应没有返回给客户端。这只在异步请求时发生,当直接使用httpclient时,它工作得很好……

代码语言:javascript
复制
   protected void signIn(String macAddress) {
   RequestHandle requestHandle = NetTask.signIn(this, object, new TextHttpResponseHandler() {
        @Override
        public void onFailure(int statusCode, Header[] headers, String responseString, Throwable throwable) {
            super.onFailure(statusCode, headers, responseString, throwable);
            Log.e("TAG","Login failed responseString="+responseString+",statusCode="+statusCode);
            ToastShowHelper.showSourceErrorToast(SignInActivity.this, statusCode, responseString);
        }

        @Override
        public void onSuccess(int statusCode, Header[] headers, String responseString) {
            super.onSuccess(statusCode, headers, responseString);
            Log.d("TAG", "Login succeed responseString=" + responseString + ",statusCode=" + statusCode);
            onSignInSuccess(responseString);
        }
}

我们做测试的代码也非常简单:

代码语言:javascript
复制
@Test
public void TestSignIn() throws URISyntaxException, InterruptedException {
    MockWebServer server = new MockWebServer();
    server.enqueue(new MockResponse().setResponseCode(200).addHeader("Content-Type", "application/json; charset=utf-8").setBody(requestBody));
    try {
        server.start();
    } catch (Exception e) {
        e.printStackTrace();
    }
    baseUrl = server.url(testUrl);
    UrlUtil.setTestLeftUrl(mockHttpRequest.getLeftUrl());
    email.setText("plapla@testemail.com");
    password.setText("123456");
    signInActivity.signIn("mac_addr");
    assertEquals("{\"mac_address\":\"mac_addr\",\"email\":\"plapla@testemail.com\",\"from\":\"ANDROID\",\"password\":\"123456\",\"has_mac\":true}", mockHttpRequest.isTestUrl().getBody().readUtf8());

}

任何想法或帮助欣赏!谢谢!

EN

回答 1

Stack Overflow用户

发布于 2017-03-22 01:01:40

我想你只需要等待你的异步呼叫,所以可以使用

代码语言:javascript
复制
Thread.sleep(3000) // 3 secs

在断言之前。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36997913

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档