Я пишу контрольный пример JUnit для контроллера в моем приложении для микронавигации. Контроллер имеет конечную точку GET, которая вызывает метод в моем классе обслуживания. Я получаю исключение NullPointerException, поэтому я предполагаю, что мой класс обслуживания может быть неправильно смоделирован, однако я не уверен. Я использую @Mock (Mockito) для сервиса.
Использую ли я правильную аннотацию для насмешки над уровнем сервиса? Я пытался искать в Google, но это не дало мне много, чтобы разобраться. Благодарю.
@MicronautTest
public class FPlanControllerTest {
private static final String url = "dummy_url";
@Inject
FPlanService fplanService;
@Inject
@Client("/")
RxHttpClient client;
@Test
public void testGetLayout() {
FPlanUrl expectedFPlanUrl = new FPlanUrl(url);
when(fplanService.getLayoutUrl(Mockito.anyString(), Mockito.anyString()))
.thenReturn(expectedFPlanUrl);
FPlanUrl actualFPlanUrl = client.toBlocking()
.retrieve(HttpRequest.GET("/layout/1000545").header("layoutId", "7"), FPlanUrl.class);
assertEquals(expectedFPlanUrl , actualFPlanUrl);
}
@MockBean(FPlanService.class)
FPlanService fplanService() {
return mock(FPlanService.class);
}
}
Я получил следующую ошибку.
java.lang.NullPointerException в com.apartment.controller.FPlanControllerTest.testGetLayout (FPlanControllerTest.java:44)