SpringBoot(十五):MockMVC-web单元测试

栏目: Java · 发布时间: 6年前

内容简介:个人博客:https://aodeng.cc微信公众号:低调小熊猫QQ群:756796932

版权声明

单纯的广告

个人博客:https://aodeng.cc

微信公众号:低调小熊猫

QQ群:756796932

简介

开发一个优秀的系统,单元测试也是必不可少的,Spring Boot 对单元测试也做了一些支持,MockMVC就是之一,可以模拟web端的post,get请求,测试也能得到详细的过程

使用方法

添加依赖

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

编写测试代码

@SpringBootTest
public class Springboot13StarterTestApplicationTests {

    private MockMvc mockMvc;

    //初始化资源
    @Before
    public void setMockMvc() throws Exception{
        mockMvc= MockMvcBuilders.standaloneSetup(new HelloController()).build();
    }

    @Test
    public void test() throws Exception{
        mockMvc.perform(MockMvcRequestBuilders.post("/hello?name=低调小熊猫")
                .accept(MediaType.APPLICATION_JSON_UTF8)).andDo(print());
    }
    @Test
    public void test2() throws Exception{
        mockMvc.perform(MockMvcRequestBuilders.post("/hello?name=低调小熊猫")
                .accept(MediaType.APPLICATION_JSON_UTF8))
                .andExpect(MockMvcResultMatchers.content().string(Matchers.containsString("低调小熊猫")));

    }
    @Test
    public void contextLoads() {
        System.out.println("低调小熊猫");
    }

}

代码作用

accept(MediaType.APPLICATION_JSON_UTF8)) 设置编码格式

andDo(print()) //会将请求和相应的过程都打印出来

Matchers.containsString("str"),判断返回的结果集中是否包含“str”这个字符串

运行测试

我们运行第一个test

MockHttpServletRequest:
      HTTP Method = POST
      Request URI = /hello
       Parameters = {name=[低调小熊猫]}
          Headers = {Accept=[application/json;charset=UTF-8]}
             Body = <no character encoding set>
    Session Attrs = {}

Handler:
             Type = com.hope.controller.HelloController
           Method = public java.lang.String com.hope.controller.HelloController.hello(java.lang.String)

Async:
    Async started = false
     Async result = null

Resolved Exception:
             Type = null

ModelAndView:
        View name = null
             View = null
            Model = null

FlashMap:
       Attributes = null

MockHttpServletResponse:
           Status = 200
    Error message = null
          Headers = {Content-Type=[application/json;charset=UTF-8], Content-Length=[21]}
     Content type = application/json;charset=UTF-8
             Body = 你好低调小熊猫
    Forwarded URL = null
   Redirected URL = null
          Cookies = []

当看到“Body = 你好低调小熊猫”,表示成功了,还能看到整个请求详细信息

第二个test,会打印我们请求的结果

第三个测试,就是普通的测试了

以上代码只是spring-boot-starter-test 组件的一部分功能,还有很多好玩的一起学吧

源码

https://github.com/java-aodeng/hope

这只是我个人的学习笔记,非教程


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

B2B品牌管理

B2B品牌管理

(美)菲利普·科特勒、(德)弗沃德 / 楼尊 / 2008-1 / 35.00元

《B2B品牌管理》是第一本专门系统地阐述B2B品牌化的专业书籍,由营销大师菲利普•科特勒与弗沃德教授合作而成。他们以非凡的智慧和深厚的经验告诫B2B企业如何运用目标明确、重点突出的品牌化战略取得市场竞争优势地位,从而更加接近顾客,也更接近成功。在众多关于品牌的书籍中,《B2B品牌管理》的独特价值在于其根据实际环境探讨B2B品牌和品牌化问题,重点介绍和分析前沿的思想和最佳实践;通过与B2C企业的品牌......一起来看看 《B2B品牌管理》 这本书的介绍吧!

URL 编码/解码
URL 编码/解码

URL 编码/解码

MD5 加密
MD5 加密

MD5 加密工具

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器