您的位置:首页 > 其它

web项目的简单测试用例的书写之伪造容器

2017-11-09 09:18 363 查看
摘要: 如何构建伪造容器,在不启动tomcat的情况下发送请求

日志前说明一点:该日志只是自我学习的总结与分享,如有侵权请联系QQ1556641908,有错误请指正,谢谢

废话不多说,直接贴代码,首先是简单的get请求,

@GetMapping

public List<User> query(@Requestparam String username){

List<User> users = new ArrayList<>();
//构造3个长度的集合
users.add(new User());
users.add(new User());
users.add(new User());

return  users;
}

测试类

@RunWith(SpringRunner.class)
@SpringBootTest
public class UserControllerTest {
@Autowired
//伪造环境,可以不启动tomcat容器,使测试用例更快
private WebApplicationContext wac;
private MockMvc mocMvc;
@Before
//每次执行前伪造容器
public  void  setup(){
mocMvc = MockMvcBuilders.webAppContextSetup(wac).build();
}
@Test
public  void whenQuerySucess() throws Exception {
//模拟发出请求
//请求类型为get 路径为("/user")
//期望成功,返回集合,长度为3
mocMvc.perform(MockMvcRequestBuilders.get("/user")
//输入参数 username
.param("username","jojo")
//为get请求设置格式
.contentType(MediaType.APPLICATION_JSON_UTF8))
//期望请求的响应是OK(200),当然也可以期望其他状态,例如4xx
.andExpect(MockMvcResultMatchers.status().isOk())
//期望结果长度为3其中的jsonpath语法,课上github上搜索
.andExpect(MockMvcResultMatchers.jsonPath("$.length()").value(3));

当然也可以将结果用String类型接收,相对的加上.andReturn().getResponse.getContentAsString)()

String result = mocMvc.perform(MockMvcRequestBuilders.get("/user")
.param("username","jojo")
.contentType(MediaType.APPLICATION_JSON_UTF8))
.andExpect(MockMvcResultMatchers.status().isOk())
.andExpect(MockMvcResultMatchers.jsonPath("$.length()").value(3))
.andReturn().getResponse().getContentAsString();
System.out.println(result);

当然还有谷歌浏览器的插件rest client来测试接口,也很方便,但是上面的对于写测试用例而言,相对方便
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  测试 伪造容器