springboot项目测试代码.

springboot. springcloud 代码单元测试方法.

@RunWith(SpringRunner.class)
@SpringBootTest(classes = SpringbootHelloApplication.class) // // 指定spring-boot的启动类
@WebAppConfiguration
public class SpringbootHelloApplicationTests {

    /**
    * @title:    是applicationContext的子接口.
    * @remark:
    * @date:     2018/10/24
    */
    @Autowired
    public WebApplicationContext context;
    /**
     * jackson提供的格式化对象
     */
    @Autowired
    public ObjectMapper mapper;

    /**
    * @title:    mockMvc对象, 模拟测试服务器,
    * @remark:   从视图层发起请求开始, 提供从前到后的完整的测试服务.
    * @date:     2018/10/24
    */
    public MockMvc mockMvc;

    /**
     * 初始化mockMvc
     */
    @Before
    public void setupMockMvc() {
        mockMvc = MockMvcBuilders.webAppContextSetup(context).build();
    }

    /**
     * 测试后, 很ok.
     * @throws Exception
     */
    @Test
    public void methodTest() throws Exception {
        Map<String, String> map = new HashMap<>();
        map.put("name","caichangmeng");
        mockMvc.perform(MockMvcRequestBuilders.post("/test") // post请求
            .contentType(MediaType.APPLICATION_JSON_UTF8) // 请求格式是json
            .content(mapper.writeValueAsString(map))) // 请求体内容 -> 还可以添加cookie等信息
        .andExpect(MockMvcResultMatchers.status().isOk())   // 期待返回状态: ok     		   .andExpect(MockMvcResultMatchers.content().contentType(MediaType.APPLICATION_JSON_UTF8))    // 期待返回数据类型: json -> 此处可能有问题. -> 因为返回字符utf-8
        .andDo(MockMvcResultHandlers.print());  // 将结果打印.
    }
}

参考链接: https://www.cnblogs.com/shunyang/p/8681111.html

猜你喜欢

转载自blog.csdn.net/weixin_43503284/article/details/83343095