2016-08-08 4 views
0

Я написал тестовый пример jUnit для метода уровня контроллера и не работает из-за несоответствия ожидаемому результату. Тестовый пример выглядит следующим образом:Ошибка в тестовом примере MockMvc для контроллера

@Test 
    public void testGetNodeStatusCount() throws Exception { 

     ListNodes listNodes = new ListNodes(); 
     // ArgumentCaptor<Integer> userId = ArgumentCaptor.forClass(Integer.class); 
     when(userManagementHelper.getNodeStatusCount(0)).thenReturn(
      new ResponseEntity<ListNodes>(listNodes, new HttpHeaders(), 
       HttpStatus.OK)); 

     mockMvc.perform(get("/usermgmt/nodestatus")).andExpect(status().isOk()); 

    } 

метод, для которого этот тест написано выглядит следующим образом:

@RequestMapping(value = "/nodestatus", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE) 
    @ResponseBody 
    public ResponseEntity<ListNodes> getNodeStatusCount(@RequestParam("userId") int userId) { 
     return userManagementHepler.getNodeStatusCount(userId); 
    } 

Failure сообщение: enter image description here

Вещь, что я не получаю что если статус был установлен OK, чем я получаю 400 вместо 200.

Еще одна вещь, которую я новичок в этом тестировании MockMVC для «Контроллера», поэтому, пожалуйста, предложите мне источник, чтобы узнать об этом.

ответ

1

Вы контроллер ожидает обязательный параметр запроса, поэтому Вы получаете статус 400 (Bad Request)

Вы можете изменить свой тест, чтобы включить этот параметр запроса mockMvc.perform(get("/usermgmt/nodestatus?userId=0")).andExpect(status().isOk());

или вы можете сделать параметр запроса факультативно

+0

Спасибо за ответ, можете ли вы предложить мне источник, чтобы узнать все это? – dexter

+1

Извинения, я целенаправленно не добавлял никаких ссылок, поскольку они могут меняться со временем. Ваш подход правильный, и если вы используете google "mockMvc tutorials", вы найдете много ссылок. Единственное немного сложное в mockMvc - асинхронное тестирование, спад, поскольку ваши контроллеры не асинхронны, вы должны быть в порядке – Leon

Смежные вопросы