如何为volley JSON请求编写单元测试用例

时间:2016-10-12 06:51:37

标签: android unit-testing android-volley

我已经写过针对排球请求的单元测试用例,但似乎没有工作。我没有得到回应 以下是我的代码

    final JSONObject jsonobj = new JSONObject();
    final CountDownLatch countDownLatch = new CountDownLatch(1);
    jsonobj.put(Constants.Params.SEARCH_STRING, "CBRE");
    jsonobj.put(Constants.Params.KEY_APP_CODE,Constants.Params.APP_CODE_VALUE);
    jsonobj.put(Constants.Params.KEY_CLIENT, Constants.Params.CLIENT_VALUE);
    jsonobj.put(Constants.Params.KEY_APPLICATION, Constants.Params.APPLICATION_VALUE);
    jsonobj.put(Constants.Params.KEY_LANGUAGE, Constants.Params.LANGUAGE_VALUE);
    jsonobj.put(Constants.Params.DORMANT_INCLUDE, String.valueOf(false));
    jsonobj.put(Constants.Params.DELETED_INCLUDE, String.valueOf(false));

    String url = Constants.Url.API_DOMAIN + Constants.Url.API_VERSION + Constants.Url.API_SEARCH_STRING + "PageNumber=1";

     JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.POST, url, jsonobj, new Response.Listener<JSONObject>() {
        @Override
        public void onResponse(JSONObject response)
        {
             System.out.print(response);
            STRING_BUILDER = new StringBuilder();
            STRING_BUILDER.append(response.toString());
            countDownLatch.countDown();

        }
    }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
            System.out.print(error.getMessage());
            countDownLatch.countDown();
        }
    });

    fakeRequestQueue.add(jsonObjectRequest);

    countDownLatch.await(10, TimeUnit.SECONDS); // wait for callback
    assertNotNull(STRING_BUILDER);

我缺少什么帮助?

1 个答案:

答案 0 :(得分:0)

看起来你的fakeRequestQueue有问题。如果你的fakeRequestQueue被正确定义,那么测试用例应该有效。您可以使用MockedQueue创建fakeRequestQueue。