单元测试
在写完功能之后,自然就是测试来验证自己controller接口是可运行的
采用的是MockMvc的框架
首先呢添加依赖
在做测试的时候要先分清楚自己这个接口是什么请求(get,post,put...)还有自己的请求参数
首先呢,这是一个基于springBoot的接口,创建测试类,可以直接生成也可以自己写
在类上贴两个注解
@SpringBootTest(classes = 启动类.class)
@RunWith(SpringJUnit4ClassRunner.class)
大家注意 @springBootTest和@WebMvcTest不能混用 混用会出问题的,如果要混用,请带上@AutoConfigureMockMvc
贴完注解之后.首先是注入自己的MockMvc的实例对象
private MockMvc mockMvc;
@Before
public void setUp() throws Exception {
mockMvc = MockMvcBuilders.standaloneSetup(测试的类).build();
}
注入完对象之后,就可以开始编写测试方法了,在方法上面贴@Test
如果是新增,修改,删除这种会修改到数据库数据的,请大家先在方法上贴@Transactional(事务回滚)
如果你的方法是post的方法
MvcResult mvcResult = mockMvc.perform(
//请求类型可以根据接口的不同而修改,里面的url则是可以访问到这个接口的路径
MockMvcRequestBuilders.post(url.toString())
//请求类型,根据请求的不同来显示
.contentType(MediaType.APPLICATION_JSON_UTF8_VALUE)
//请求头,可不写
.header("accessToken","")
//请求的自身带的参数(1.如果是用对象作为参数的,就自己先new一个测试对象扔到这个方法里
//面来即可),(2.如果无参数或者在路径中携带参数的,这个可不写),3.(如果有参数,但是参数是单
//个的,就把content改成param("参数名","参数值"),多个参数则用params())
.content(JSONObject.toJSONString(参数对象)
.accept(MediaType.APPLICATION_JSON_UTF8_VALUE))
//断言这个接口是运行的通的,如果断言失败,则这个接口运行之后会报错,可以吧里面改成自己
//定义的错误,或者自己的判断的依据
.andExpect(status().isOk())
//最后返回相应的MvcResult;然后进行自定义验证/进行下一步的异步处理(对返回的数据进行的判断)
.andReturn();
这样运行就可以测试啦.