Как я могу издеваться над HttpResponse, интерфейсом, с RETURNS_DEEP_STUBS - PullRequest
0 голосов
/ 20 мая 2019

Я хочу вернуть 200 при вызове этих функций:

`when`(httpResponse.statusLine.statusCode).thenReturn(200)

httpResponse - это макет, созданный

val httpResponse = mock(HttpResponse::class.java, RETURNS_DEEP_STUBS)

Моя проблема в том, что httpResponse равно нулю, когда я использую RETURNS_DEEP_STUBS. Я думаю, это происходит потому, что HttpResponse является интерфейсом (?).

Если я пропущу RETURNS_DEEP_STUBS, я не могу вызвать какие-либо функции после первого statusLine

Возможно ли смоделировать такой интерфейс? Если да, то как?

1 Ответ

1 голос
/ 20 мая 2019

Просто создайте еще один макет:

val httpResponseStub = mock(HttpResponse::class.java);
val statusLineStub= mock(StatusLine::class.java);

when(statusLineStub.statusCode).thenReturn(200);
when(httpResponseStub.statusLine).thenReturn(statusLineStub);

шаг за шагом.

...