简介
使用springmvc mock
参考:Spring MVC如何测试Controller(使用springmvc mock测试)
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.web.WebAppConfiguration;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.MvcResult;
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
import org.springframework.test.web.servlet.result.MockMvcResultHandlers;
import org.springframework.test.web.servlet.result.MockMvcResultMatchers;
import org.springframework.test.web.servlet.setup.MockMvcBuilders;
import org.springframework.web.context.WebApplicationContext;
/**
* Created by jony on 3/19/18.
*/
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("file:src/main/webapp/WEB-INF/mvc-dispatcher-servlet.xml")
@WebAppConfiguration
public class MainControllerTest {
protected MockMvc mockMvc;
@Autowired
protected WebApplicationContext wac;
@Before() //这个方法在每个方法执行之前都会执行一遍
public void setup()
{
mockMvc = MockMvcBuilders.webAppContextSetup(wac).build(); //初始化MockMvc对象
}
@Test
public void getAllCategoryTest() throws Exception
{
MvcResult mvcResult = mockMvc.perform(MockMvcRequestBuilders.get("/intlcc/tcp_client.do"))
.andExpect(MockMvcResultMatchers.status().is(200))
.andDo(MockMvcResultHandlers.print())
.andReturn();
int status = mvcResult.getResponse().getStatus();
System.out.println("请求状态码:" + status);
// String result = mvcResult.getResponse().getContentAsString();
// System.out.println("接口返回结果:" + result);
// JSONObject resultObj = JSON.parseObject(result);
// // 判断接口返回json中success字段是否为true
// Assert.assertTrue(resultObj.getBooleanValue("success"));
}
}
依赖
除了spring 框架以及Junit,Servlet 也是需要的(下面的依赖spring 没贴)
<!--servlet-->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
</dependency>
<!--Test-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>3.2.8.RELEASE</version>
<scope>test</scope>
</dependency>
注:测试过程打印一大堆,得仔细研究
网友评论