При написании модульного теста для класса контроллера я высмеивал вызов уровня обслуживания, чтобы вернуть желаемое значение, но вместо этого он возвращает ноль.
Тестовый класс
@RunWith(SpringJUnit4ClassRunner.class)
public class ControllerTest {
@Mock
private Service serviceMock;
@InjectMocks
private Controller controller;
private MockMvc mockMvc;
/**
* Sets the up.
*
* @throws Exception the exception
*/
@Before
public void setUp() throws Exception {
MockitoAnnotations.initMocks(this);
mockMvc =
MockMvcBuilders.standaloneSetup(controller).build();
}
@Test
public void method1() throws Exception {
when(this.serviceMock.associateTag(any(Request.class), null))
.thenReturn(Responses.SUCCESS);
mockMvc.perform(post("/tag/assign").contentType(MediaType.APPLICATION_JSON).content(request)) .andExpect(MockMvcResultMatchers.status().isOk());
}
Класс контроллера
@PostMapping("/assign")
public RestResponse assignTag(@RequestBody final TagAssociation
tagAssociation) {
final TagResponses serviceResponse =
this.service.associateTag(tagOrderAssociation, null);
serviceResponse всегда равен нулю, я ожидал ответа на перечисление Respons.SUCCESS
Stack Trace
testException = org.springframework.web.util.NestedServletException: Обработка запроса не удалась;Вложенное исключение - java.lang.NullPointerException
Уровень службы имеет много зависимостей, которые автоматически подключаются. мне тоже надо издеваться? Не удалось выяснить точную причину сбоя.