У меня есть метод в классе обслуживания, который выполняет вызов retrofit2, и я пытаюсь смоделировать этот вызов.
Это работает, когда я пытаюсь смоделировать успешный вызов, но не, когда я пытаюсь смоделировать ответ 400.
import static org.junit.Assert.assertEquals;
public class ServiceTests{
@InjectMocks
private ServiceClass serviceClass;
@Mock
private Call<...> retrofitCallMock;
@Before
public void setup(){
MockitoAnnotations.initMocks(this);
}
//This is what i've tried
@Test
public void succCallTest(){
//this works
when(retrofitCallMock.execute()).thenReturn(Response.success(...));
//run the method in the service class
assertEquals("success", serviceClass.methodCall());
}
@Test
public void failCallTest(){
//this doesn't work
when(retrofitCallMock.execute()).thenReturn(Response.error(400, ...));
//run the method in the service class
assertEquals("fail", serviceClass.methodCall());
}
}
Второй тест не будет работать, поскольку я получаю нулевой объект при вызове execute (). И, таким образом, нулевой указатель был брошен впоследствии.
Любые предложения и рекомендации приветствуются. Спасибо.