开发过程中,有时需要对接口进行小步迭代测试。这时候可以使用junit mockmvc来对controller进行测试,这样即使接口在后期需要修改时,可以快速进行测试。
首先上一个例子:
@RunWith(SpringRunner.class)
@SpringBootTest
@AutoConfigureMockMvc
public class IndexControllerTest {
@Autowired
private MockMvc mockMvc;
@Test
public void xiaowanzi() throws Exception {
mockMvc.perform(MockMvcRequestBuilders.get("/xwz")).andExpect(MockMvcResultMatchers.status().isOk());
}
}
mockmvc 为一个虚拟的servlet
方法:
public ResultActions perform(RequestBuilder requestBuilder) throws java.lang.Exception
**perform(RequestBuilder requestBuilder)
Perform a request and return a type that allows chaining further actions, such as asserting expectations, on the result.**
ResultActions 有三个方法:
andDo(ResultHandler handler)
ResultActions andExpect(ResultMatcher matcher)
MvcResult andReturn()
举个栗子:使用andReturn() 获取返回responsebody的值
@RequestMapping(value = "mockTest")
@ResponseBody
public RestResponseBo mockTest(){
System.out.println("this is mock test ");
return RestResponseBo.fail(ErrorCode.BAD_REQUEST);
}
//方法对应test:
@Test
public void xiaowanzi() throws Exception {
MockHttpServletResponse response = mockMvc.perform(MockMvcRequestBuilders.get("/mockTest")).andReturn().getResponse();
System.out.println(response.getContentAsString());
}

本文介绍了如何在开发中使用JUnit的MockMVC对RESTful接口进行小步迭代测试。通过MockMVC,即便接口后续需要修改,也能快速进行测试。举例说明了perform(RequestBuilder requestBuilder)方法用于执行请求,并可通过ResultActions的andDo(), andExpect()和andReturn()进行后续操作,如获取ResponseBody的值。"
85332034,8265545,SpringBoot入门实践:构建简单项目与接口调用,"['SpringBoot', 'SpringCloud', 'RESTful API', '缓存', 'Gradle构建']
672

被折叠的 条评论
为什么被折叠?



