SpringBoot 测试类

//对于前后端分离的项目而言,无法直接从前端静态代码中测试接口的正确性,因此可以通过MockMVC来模拟HTTP请求

@RunWith(SpringRunner.class) //public final class SpringRunner extends SpringJUnit4ClassRunner @SpringBootTest //@SpringBootTest注解是SpringBoot自1.4.0版本开始引入的一个用于测试的注解  // 测试环境使用,用来表示测试环境使用的ApplicationContext将是WebApplicationContext类型的  作用是模拟ServletContext @WebAppConfiguration public class PortalUserApplicationTest { /** * WebApplicationContext,是继承于ApplicationContext的一个接口, * 扩展了ApplicationContext,是专门为Web应用准备的,它允许从相对于Web根目录的路径中装载配置文件完成初始化。 */ @Autowired private WebApplicationContext webApplicationContext; /** * *MockMvc实现了对Http请求的模拟,能够直接使用网络的形式 * * mockMvc调用perform,执行一个RequestBuilder请求,调用controller的业务处理逻辑; * * perform返回ResultActions,返回操作结果,通过ResultActions,提供了统一的验证方式; * */ private MockMvc mockMvc;
/** * MockMvcBuilders是MockMvc的构造器; * * MockMvc是spring测试下的一个非常好用的类,他们的初始化需要在setUp中进行 */ @Before public void setup() { this.mockMvc = MockMvcBuilders.webAppContextSetup(webApplicationContext).build(); } @Test public void test() throws Exception { String uri = "接口路径"; String str = "接口要传的参数"; //MockMvcRequestBuilders 用来构建请求 指定传参方式 和 接口路径 这里是post MvcResult mvcResult = mockMvc.perform(MockMvcRequestBuilders.post(uri) .contentType(MediaType.APPLICATION_JSON) //数据格式 .content(str)) .andDo(MockMvcResultHandlers.print()).andReturn(); int status = mvcResult.getResponse().getStatus(); //得到返回状态码 String content = mvcResult.getResponse().getContentAsString(); //得到接口返回结果 System.out.println("返回:" + JSON.parseObject(content)); } }

控制台部分打印信息

posted @ 2019-12-30 10:13  wf.zhang  阅读(1488)  评论(0编辑  收藏  举报