之前写的Restfull Api的接口都是用postman测试的,今天看到可以使用代码测接口,记录一下
添加依赖
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency>
新建一个HelloworldControllerTest的文件
@RunWith(SpringRunner.class) @SpringBootTest public class HelloworldControllerTest { @Autowired private WebApplicationContext wac; private MockMvc mockMvc; @Before public void setup(){ mockMvc= MockMvcBuilders.webAppContextSetup(wac).build(); } @Test public void getUser() throws Exception { mockMvc.perform(MockMvcRequestBuilders.get("/user")//访问/user接口 .param("username","admin")//访问的参数username值为admin .contentType(MediaType.APPLICATION_JSON_UTF8))//使用json utf-8 .andExpect(MockMvcResultMatchers.status().isOk())//返回的状态是200 .andExpect(MockMvcResultMatchers.jsonPath("$.length()").value(3));//返回的参数等3个 } }
如果返回的状态码不是200测试通不过,如果返回的参数不等于3个测试也会通不过
MockMvcResultMatchers.jsonPath(“$.length()”).value(3)这里的写法可以参考https://github.com/json-path/JsonPath