单元测试

单元测试

在写完功能之后,自然就是测试来验证自己controller接口是可运行的

采用的是MockMvc的框架

首先呢添加依赖

            com.jayway.jsonpath

            json-path

            0.8.1

            test

       

       

            com.jayway.jsonpath

            json-path-assert

            0.8.1

            test

       

在做测试的时候要先分清楚自己这个接口是什么请求(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();

这样运行就可以测试啦.

你可能感兴趣的:(单元测试)