Mock -Nachrüstfehler Okhttp3.ResponseBody $ 1 kann nicht gegossen werdenAndroid

Forum für diejenigen, die für Android programmieren
Anonymous
 Mock -Nachrüstfehler Okhttp3.ResponseBody $ 1 kann nicht gegossen werden

Post by Anonymous »

Ich versuche, einen Ausschnitt meines Codes zu testen, der nach Restrofit verwendet wird. Daher habe ich eine Schnittstelle zum "Verspotten" der Rückgabe erstellt. Es funktioniert in Teilen. Es kann die OnResponse von Enqueue aufrufen, aber es kann die Antwort Antwort < /code> jedoch nicht konvertieren. Okhttp3.ResponseBody $ 1 kann nicht an br.com.safety.safetyRecognitionSdk.data.network.Auth.authResponse < /p>
< /blockquote>

Schnittstelle zum Spott < /p> < />

ausgegeben werden.

Code: Select all

public interface AuthRepositoryBoundary {

Call auth(String appKey, String projectId);

}
< /code>

Klasse verspottet < /p>

public class AuthSuccessTest implements AuthRepositoryBoundary {

@Override
public Call auth(String appKey, String projectId) {

ResponseBody body = ResponseBody.create(
MediaType.parse("application/json"),
MockAuth.AUTH_SUCCESS
);

Response aResponse = Response.success(body, new okhttp3.Response.Builder() //
.code(201)
.message("OK")
.body(body)
.protocol(Protocol.HTTP_1_1)
.request(new Request.Builder().url("http://localhost/").build())
.build());

return Calls.response(aResponse);
}

}
< /code>

Implementierung < /p>

@Override
public void auth(String appKey, String projectID) {
this.authRepository.auth(appKey, projectID).enqueue(new Callback() {
@Override
public void onResponse(Call call, Response response) {
switch (response.code()) {
case 201:
authListener.onSuccess(response.body());
break;
case 401:
authListener.onUnauthorized("Unauthorized");
break;
default:
authListener.onError("Server error");
break;
}
}

@Override
public void onFailure(Call call, Throwable t) {
authListener.onError(t.getMessage());
}
});
}
< /code>

Der Test: < /p>

@Test
public void when_success_authentication_should_be_invoke_on_success() {
this.authListenerMock = mock(AuthListener.class);
this.authRepositoryMock = mock(AuthRepositoryBoundary.class);

this.authSuccessTest = new AuthSuccessTest();

this.safetyRecognition = new SafetyRecognition()
.setCredentials("project_id", "key_id")
.auth(new Authentication(this.authListenerMock, this.authSuccessTest));

verify(this.authListenerMock).onSuccess(ArgumentMatchers.any(AuthResponse.class));
}

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post