2014-12-11 4 views
1

Это мой код:Использование Mock на контроллерах слое MVC

@Controller("testController") 
public class TestController 
{ 
    private static final Log logger = LogFactory.getLog(TestController.class); 

    @Autowired 
    private TestService testService; 

    private static final String TEST_FILTER = "test.filter"; 

    /** 
    * List the tests. 
    * 
    * @param first the pagerFirst 
    * @param page the pagerPage 
    * @param model the model 
    * @param req WebRequest 
    * @return the test view name 
    */ 
    @RequestMapping(value = "/tests.do", method = RequestMethod.GET) 
    public String listTests(@RequestParam(value = "pagerFirst", required = false) Long first, 
           @RequestParam(value = "pagerPage", required = false) Long page, 
           Model model, WebRequest req) 
    { 
     if (first == null) 
     { 
      first = 0L; 
     } 
     if (page == null) 
     { 
      page = 20L; 
     } 

     testFilter filter = (TestFilter) req.getAttribute(TEST_FILTER, RequestAttributes.SCOPE_SESSION); 
     if (filter == null) 
     { 
      filter = new TestFilter(); 
     } 
     TestFilterView testFilterView = testService.getTestFilterView(filter); 
     model.addAttribute("testFilterView", testFilterView); 

     return "tests"; 
    } 

Как я могу проверить этот код, используя Mock?

Большое спасибо!

ответ

2

Если вы заинтересованы в использовании Mocks для проверки кода, это означает, что вы собираетесь тестировать единицы измерения, а не интеграционные тесты. Групповое тестирование контроллера обычно подразумевает проверку входящих RequestParams/PathParams, гарантируя, что служба вызвана или ответ будет таким, каким он должен.

Итак, в вашем случае простой модульный тест подразумевает использование Mockito или PowerMock для издевательства над TestService и проверки того, что вызовы к нему сделаны соответствующим образом, и то, что возвращается службой, в порядке.

Проверьте справочную страницу Mockito http://docs.mockito.googlecode.com/hg/org/mockito/Mockito.html, в ней есть несколько отличных примеров.

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