1、pom.xml追加
junit
spring-test
2、测试共通类
@ContextConfiguration(locations = { "classpath:springframework/application-context.xml", ???????"classpath:springframework/dispatcherservlet-servlet.xml" })@RunWith(SpringJUnit4ClassRunner.class)@WebAppConfiguration@Transactionalabstract public class TestCommon { ???private static final Logger LOG = LogManager.getLogger(); ???private MockMvc mockMvc; ???@Autowired ???private WebApplicationContext wac; ???@Before ???public void setUp() { ???????mockMvc = MockMvcBuilders.webAppContextSetup(wac).build(); ???}}
3、示例
public class MemberTest extends TestCommon { ???/** ????* 请求:新增,请求方式:POST ????*/ ???@Test ???@Rollback(false) ???public void add() throws Exception { ???????String uri = "/member/add"; ???????Map<String, String> contentParams = new HashMap<>(); ???????contentParams.put("name", "测试用姓名"); ???????contentParams.put("sex", "男"); ???????String jsonStr = new ObjectMapper().writeValueAsString(contentParams); ???????MockHttpServletResponse response = mockMvc.perform( ???????????????MockMvcRequestBuilders.post(uri).contentType(MediaType.APPLICATION_JSON_UTF8).content(jsonStr)) ???????????????.andReturn().getResponse(); ???????if (response.getStatus() != HttpServletResponse.SC_OK) { ???????????fail("Http" + response.getStatus()); ???????} ???????????LOG.info(response.getContentAsString()); ???}}
4、如果想测试除post以外的请求,可以调用MockMvcRequestBuilders的get, put等方法
5、类似于URL中的“?page=2”的参数,可以调用MockMvcRequestBuilders的params方法
使用MockMVC与Junit进行单体测试
原文地址:http://www.cnblogs.com/deolin/p/7536858.html