MockMvc

Test Get Method

Unit Test
VetController
@Controllerpublic class VetController {    private final ClinicService clinicService;    @Autowired    public VetController(ClinicService clinicService) {        this.clinicService = clinicService;    }    @RequestMapping(value = { "/vets.html"})    public String showVetList(Map<String, Object> model) {        // Here we are returning an object of type 'Vets' rather than a collection of Vet objects        // so it is simpler for Object-Xml mapping        Vets vets = new Vets();        vets.getVetList().addAll(this.clinicService.findVets());        model.put("vets", vets);        return "vets/vetList";    }}
VetControllerTest
//...import static org.assertj.core.api.Assertions.assertThat;import static org.mockito.ArgumentMatchers.any;import static org.mockito.ArgumentMatchers.anyString;import static org.mockito.BDDMockito.given;import static org.mockito.BDDMockito.then;import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*;@ExtendWith(MockitoExtension.class)class VetControllerTest {    @Mock    ClinicService clinicService;    @Mock    Map<String, Object> model;    @InjectMocks    VetController controller;    List<Vet> vetsList = new ArrayList<>();    MockMvc mockMvc;    @BeforeEach    void setUp() {        vetsList.add(new Vet());        given(clinicService.findVets()).willReturn(vetsList);        mockMvc = MockMvcBuilders.standaloneSetup(controller).build();    }    @Test    void testControllerShowVetList() throws Exception {        mockMvc.perform(get("/vets.html"))            .andExpect(status().isOk())            .andExpect(model().attributeExists("vets"))            .andExpect(view().name("vets/vetList"));    }}
Integration Test
OwnerController
@Controllerpublic class OwnerController {    private static final String VIEWS_OWNER_CREATE_OR_UPDATE_FORM = "owners/createOrUpdateOwnerForm";    private final ClinicService clinicService;    @RequestMapping(value = "/owners/new", method = RequestMethod.GET)    public String initCreationForm(Map<String, Object> model) {        Owner owner = new Owner();        model.put("owner", owner);        return VIEWS_OWNER_CREATE_OR_UPDATE_FORM;    }}
OwnerControllerTest
// ...import org.springframework.test.context.junit.jupiter.web.SpringJUnitWebConfig;import org.springframework.test.web.servlet.MockMvc;import org.springframework.test.web.servlet.setup.MockMvcBuilders;import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*;@SpringJUnitWebConfig(locations = {"classpath:spring/mvc-test-config.xml",                                    "classpath:spring/mvc-core-config.xml"})// @SpringJUnitWebConfig({Abc.class, Uvw.class})class OwnerControllerTest {    @Autowired    OwnerController ownerController;    @Autowired    ClinicService clinicService;    MockMvc mockMvc;    @BeforeEach    void setUp() {        mockMvc = MockMvcBuilders.standaloneSetup(ownerController).build();    }    @Test    void initCreationFormTest() throws Exception {        mockMvc.perform(get("/owners/new"))            .andExpect(status().isOk())            .andExpect(model().attributeExists("owner"))            .andExpect(view().name("owners/createOrUpdateOwnerForm"));    }}