Search code examples
springspring-mvcjunitjunit4junit3

How to test spring controller method using Junit


Hi I'm new to Spring and to Junit as well. I have a method in my controller. I want to write Junit for this method (getPersons()).

@Autowired
private PersonService personService;

@RequestMapping(value="/t2/{yy_id}/person", method=RequestMethod.GET)
@ResponseBody
public PersonInfo[] getPersons() {

    return personService.getPersons();
}

Can someone please help me and guide me in a right manner. Please give some example.


Solution

  • You should use the mvc test framework. It allows you to test all the mvc infrastructure - e.g. the @RequestMapping, @ResponseBody etc... - around your controller in addition to your own collaborators.

    A very simple example of using the framework would be invoking the getPersons() method and asserting a 200 response code is received:

    ...
    @Test
    public void getPersons() throws Exception {
        this.mockMvc.perform(get("/t2/1234/person"))
          .andExpect(status().isOk());
    }
    ...
    

    The framework is capable of much more but I urge you to read the documentation, there are plenty of examples included. I hope that helps.