How to test spring controller method using Junit

13,658

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.

Share:
13,658
Saurabh
Author by

Saurabh

Updated on June 08, 2022

Comments

  • Saurabh
    Saurabh almost 2 years

    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.