@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = {MyMvcConfig.class})//记载mvc配置文件
@WebAppConfiguration("src/main/resources")//声明加载的ApplicationContext是一个WebApplicationContext,属性指定web资源的位置
public class TestControllerIntegrationTests {
private MockMvc mockMvc;//模拟mvc对象
@Autowired
private DemoService demoService;
@Autowired
WebApplicationContext wac;
@Autowired
MockHttpSession session;
@Autowired
MockHttpServletRequest request;
@Before
public void setup(){
this.mockMvc= MockMvcBuilders.webAppContextSetup(this.wac).build();
}
@Test
public void testNormalController() throws Exception{
mockMvc.perform(get("/normal")) //向/normal进行get请求
.andExpect(status().isOk())//预期控制返回状态为200
.andExpect(view().name("page"))//预期view的名称为page
.andExpect(forwardedUrl("/WEB-INF/classes/views/page.jsp"))//预期页面转向的真正路径
.andExpect(model().attribute("msg", demoService.saySomething()));//预期Model中msg的值为demoService.saySomething()的返回值
}
@Test
public void testRestController() throws Exception{
mockMvc.perform(get("/testRest")) //
.andExpect(status().isOk())
.andExpect(content().contentType("text/plain;charset=UTF-8"))//预期返回值类型是媒体类型
.andExpect(content().string(demoService.saySomething()));//预期返回值是hello
}
}