配置测试环境
1.在 pom.xml中导入 spring-test 模块。
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>4.3.7.RELEASE</version>
</dependency>
2.如果使用的是Spring4进行测试,需要 servlet3.0的支持。
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.0.1</version>
<scope>provided</scope>
</dependency>
测试类
@RunWith(SpringJUnit4ClassRunner.class)
@WebAppConfiguration
@ContextConfiguration(locations = {"classpath:applicationContext.xml"})
public class MvcTest {
@Autowired
WebApplicationContext context;
MockMvc mockMvc;
@Before
public void init() {
mockMvc = MockMvcBuilders.webAppContextSetup(context).build();
}
@Test
public void testPage() throws Exception {
MvcResult result = mockMvc.perform(MockMvcRequestBuilders.get("/messages").param("pn", "5"))
.andReturn();
MockHttpServletRequest request = result.getRequest();
PageInfo pi = (PageInfo) request.getAttribute("pageInfo");
System.out.println(pi);
}
}
配置注解:
- @RunWith(SpringJUnit4ClassRunner.class) 测试运行于Spring测试环境。
- @ContextConfiguration 加载Spring的配置文件。
- @WebAppConfiguration 表明应该为测试加载WebApplicationContext,必须与@ContextConfiguration一起使用。
- @Before 编写测试方法执行前的逻辑,可以初始化MockMVC实例。
- @Test 标明实际测试方法,建议每个Controller对应一个测试类。