使用spring boot test对restful接口进行测试

1、引入测试依赖包

2、编写测试类(GET请求)

@RunWith(SpringRunner.class)
@SpringBootTest
public class UserControllerTest {
	
	@Autowired
	private WebApplicationContext wac;
	
	private MockMvc mockMvc;
	
	@Before
	public void setup(){
		//让每个测试用例启动之前都构建这样一个启动项
		mockMvc = MockMvcBuilders.webAppContextSetup(wac).build();
	}
	
	@Test
	public void whenQueryUserAll() throws Exception{
		//MockMvcRequestBuilders构建GET请求
		mockMvc.perform(MockMvcRequestBuilders.get("/user")
						//请求参数
						.param("token", "asfsafqfEQFFA$@%%4")
						//请求编码和数据格式为json和UTF8
						.contentType(MediaType.APPLICATION_JSON_UTF8))
						//期望的返回值 或者返回状态码	
						.andExpect(MockMvcResultMatchers.status().isOk());
						//期望获取返回值的具体 什么参数 或者具体某个字段的值 具体在GitHub 搜jsonPath 什么参数的什么value
						//.andExpect(MockMvcResultMatchers.jsonPath("$.User.userName").value("zyy"));
	}
	
	
}

https://github.com/json-path/JsonPath

3、编写测试类(POST请求)

@RunWith(SpringRunner.class)
@SpringBootTest
public class UserControllerTest {
	
	@Autowired
	private WebApplicationContext wac;
	
	private MockMvc mockMvc;
	
	@Before
	public void setup(){
		//让每个测试用例启动之前都构建这样一个启动项
		mockMvc = MockMvcBuilders.webAppContextSetup(wac).build();
	}
	

	@Test
	public void greatUserWhithDetailView() throws Exception{
		String content = "{\"userName\":\"二十岁以后\",\"passWord\":null,\"id\":88}";
		
		//MockMvcRequestBuilders构建GET请求
		String result = mockMvc.perform(MockMvcRequestBuilders.post("/user")
						//请求编码和数据格式为json和UTF8
						.contentType(MediaType.APPLICATION_JSON_UTF8)
						//请求的参数,为json的格式
						.content(content))
						//期望的返回值 或者返回状态码	
						.andExpect(MockMvcResultMatchers.status().is5xxServerError())
						//返回请求的字符串信息
						.andReturn().getResponse().getContentAsString();
		System.out.println(result);
	}
	
}

 

猜你喜欢

转载自my.oschina.net/u/3637243/blog/1788762