2

HIには次のテストがあり、機能させることができません:

protected HttpClient mHttpClientMock;
protected HttpPost mHttpPostMock;
protected HttpResponse mHttpResponseMock;
protected StatusLine mStatusLineMock;
protected HttpEntity mHttpEntityMock;
protected ContentResolver mResolver;

    protected void setUp() throws Exception {
    super.setUp();
    // Create mocks.
    mHttpPostMock = Mockito.mock(HttpPost.class);
    mHttpClientMock = Mockito.mock(HttpClient.class);
    mHttpResponseMock = Mockito.mock(HttpResponse.class);
    mStatusLineMock = Mockito.mock(StatusLine.class);
    mHttpEntityMock = Mockito.mock(HttpEntity.class);

    prepareMocks();

    // Obtain Content Resolver.
    mResolver = getContext().getContentResolver();
}


protected void prepareMocks() throws IOException {
    // Create mocked response.
    // Define expected calls.
    Mockito.when(mHttpClientMock.execute(Mockito.isA(HttpPost.class)));
//Mockito.when(mHttpResponseMock.getStatusLine()).thenReturn(mStatusLineMock);
//  Mockito.when(mStatusLineMock.getStatusCode()).thenReturn(HttpStatus.SC_OK);
//  Mockito.when(mHttpResponseMock.getEntity()).thenReturn(mHttpEntityMock);
    Mockito.when(mHttpClientMock.execute(Mockito.mock(Markup.class)));
 //  Mockito.when(mHttpEntityMock.writeTo(Mockito.mock(Markup.class));
}

後でテストできるように、(Markup.class) 投稿を準備するにはどうすればよいですか。

どうもありがとうございました。宜しくお願いします。

4

2 に答える 2

4

これでした!!!

        InputStream jsonResponse = createJsonResponse();
    // Define expected calls.
    Mockito.when(mHttpClientMock.execute(Mockito.isA(HttpPost.class))).thenReturn(mHttpResponseMock);
    Mockito.when(mHttpResponseMock.getStatusLine()).thenReturn(mStatusLineMock);
    Mockito.when(mStatusLineMock.getStatusCode()).thenReturn(HttpStatus.SC_OK);
    Mockito.when(mHttpResponseMock.getEntity()).thenReturn(mHttpEntityMock);
    Mockito.when(mHttpEntityMock.getContent()).thenReturn(jsonResponse);
于 2013-03-30T02:52:25.673 に答える
0

Mockito を使用して Web サービスをテストすることは可能ですが、動的な動作をテストする場合は、RestAssuredテスト フレームワークを使用することをお勧めします。主に REST Web サービスをテストするように設計されていますが、「通常の」HTTP フォームの投稿をテストするためにも使用できます。

Mockito ですべてをモックする場合、実際の動作ではなく、主にモックをテストすることになります。

Mockito でテストするということは、モック HTTP リクエストを作成し、それをそのリクエストを消費する何らかのメソッドに渡すことを意味します。メソッドがリクエストを適切に解析し、正しい結果が得られたかどうかを確認するいくつかのアサーションを作成できます。

于 2013-03-29T18:39:20.560 に答える