有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Mockito测试RestClient异步

如何测试当前的方法?我无法找到像method1、method2这样的内部方法。。等等,我试图用Mockito在不同的测试中测试所有内部方法。可能吗

@Override
public void myMethod(JSONObject json, final Listener listener) {
    StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
    StrictMode.setThreadPolicy(policy);
    RestClientAPI.aSyncPost(url, request, contentType, new JsonHttpResponseHandler() {
        @Override
        public void onStart() {
            super.onStart();
            listener.method1();
        }
        @Override
        public void onSuccess(int statusCode, Header[] headers, JSONObject response) {
            listener.method2(response);
        }
        @Override
        public void onFailure(int statusCode, Header[] headers, final String responseString, Throwable throwable) {
            listener.method3(responseString);
        }
        @Override
        public void onFinish() {
            super.onFinish();
            listener.method4();
        }
    });
}

共 (1) 个答案

  1. # 1 楼答案

    按照下面的思路应该可以做到这一点

    @Test
    public void testMyMethodSuccess() {
      Listener mockListener = mock(Listener.class);
      myInstance.myMethod(jsonThatWillSucceed, mockListener);
    
      verify(mockListener, times(1)).method1();
      verify(mockListener, times(1)).method2(Mockito.eq(expectedResponse));
      verify(mockListener, times(1)).method4();
    }