@Mockitobean - это nulJAVA

Программисты JAVA общаются здесь
Anonymous
@Mockitobean - это nul

Сообщение Anonymous »

Я пытаюсь протестировать контроллер Rest Spring Boot. ContactService.java Class. Контроллер REST зависит от этого ContactService.java Class. -Джава симпатичная-оборота ">

Код: Выделить всё

public class ContactRestControllerTest {

private MockMvc mockMvc;

@MockitoBean
private ContactService contactService;

@BeforeEach
void setup() {
MockitoAnnotations.openMocks(this);
this.objectMapper = new ObjectMapper();
this.mockMvc = MockMvcBuilders
.standaloneSetup(new ContactRestController(contactService))
.build();
}

@Test
void getMessagesByStatus() throws Exception {
final String STATUS = "Open";

String messageListStr = "[ { ... } ]";

Page pagedContactMessageList = // omitted for brevity...

Mockito.when(
this.contactService.getContactMessages(Mockito.eq(STATUS), Mockito.anyMap())
).thenReturn(pagedContactMessageList);

mockMvc.perform(...); // omitted for brevity
}
}
< /code>
Приведенный выше код бросает NullPointerException: < /p>
java.lang.NullPointerException: Cannot invoke "...ContactService.getContactMessages(String, java.util.Map)" because "this.contactService" is null

at ....ContactRestControllerTest.getMessagesByStatus(ContactRestControllerTest.java:151)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
Вопрос:
Почему ContactService nul ); также называется?
Если я использую @Webmvctest (contactrestcontroller.class) аннотация. В этом случае мне даже не нужно вызывать mockitoannotions.openmocks (this) . Все работает нормально. Чего мне здесь не хватает?>

Подробнее здесь: https://stackoverflow.com/questions/794 ... controller

Вернуться в «JAVA»