首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

实战:Spring Boot 程序如何做好 Web 层的测试

另外,上述的测试方法实现里通过status().isOk()断言了响应码 200,通过 jsonPath("$.username").value("test") 断言了响应结果 json 数据时,username...字段的值 test,这里借助了 MockMvcResultMatchers.jsonPath 实现对 json 数据快速提取,想要进一步学习的话可以搜索 jsonPath 了解。...进阶一些的内容。...总结 好了,以上就是本文关于 Spring Boot 程序如何做好 Web 层的测试的全部介绍,可以看出对 Web 层的测试并不是很复杂,相关 API 的可读性也很高,不过需要注意一点的是,利用 MockMvc...最后,关于MockMvc 相关以及 Spring Boot 实现 Web 层测试等更深入的内容可以参考文末给出的官方文档地址进一步了解,希望本文的介绍对日常开发中有所帮助,后续将继续介绍关于利用 Spring

93220

SpringBoot对单元测试支持、常用单元测试功能使用实例

国内大多数开发人员对单元测试有所忽视,这也是我写本章内容的原因所在。 本章会围绕 Spring Boot 对单元测试的支持、常用单元测试功能的使用实例以及 MockMvc的自动配置机制展开。...Spring Test & Spring Boot Test: Spring Boot 应用提供集成测试和工具支持。 AssertJ:支持流式断言的 Java 测试框架。...JSONassert:一个针对 JSON断言库。 JsonPath:一个 JSON XPath 库。 如果 Spring Boot 提供的基础类库无法满足业务需求,我们也可以自行添加依赖。...在 JUnit4中默认使用的@Test 注解 org.junit.Test,而在 JUnit5 中需要使用 org.junit.jupiter.api.Test.因此,如果在升级的过程中出现莫名其妙的指针异常时...整个单元测试包含以下步骤:准备测试环境、执行 MockMvc 请求、 添加验证断言、添加结果处理器、得到 MvcResult 进行自定义断言/进行下一步的异步请求、卸载测试环境。

1.6K30

如何对Spring MVC中的Controller进行单元测试

;charset=UTF-8")) // 预期内容类型 .build(); 执行测试 MockMvc支持对常见的HTTP方法,如:GET,POST,PUT,DELETE等,甚至还支持文件上传请求...,有2种方式: 1.使用JUnit提供的Assert断言工具判断返回结果,这是一种非常普遍和常见的方式 2.在MockMvc框架中可以通过andExpect()方法定义一个或多个预期结果,当其中一个期望结果断言失败时.../simple/get").accept(MediaType.APPLICATION_JSON)) .andExpect(status().isOk()) // 预期响应状态码...200 .andExpect(content().string("OK")) // 预期返回值字符串“OK” .andDo(print()); } 相比于使用...Junit的断言工具判断返回结果,在MockMvc框架中直接定义预期结果进行断言检查更加简洁。

2.1K30

SpringBoot单元测试

):代表发送端发送的数据格式是application/json;charset=UTF-8 4. accept(MediaType.APPLICATION_JSON):代表客户端希望接受的数据类型application...ResultActions.andExpect(MockMvcResultMatchers.status().isOk()):方法看请求的状态响应码是否200如果不是则抛异常,测试不通过 8....ResultActions.andDo:添加一个结果处理器,表示要对结果做点什么事情,比如此处使用print():输出整个响应结果信息 六、断言的概念 断言(assert),是编程术语,表示一些布尔表达式...,程序员相信在程序中的某个特定点该表达式值真。...安装Postman 官方网站: https://www.getpostman.com/apps 安装后,Postman是介样婶儿滴~~ 参考资料 小名同学 分享计划 博客内容将同步至腾讯云+社区,邀请大家一同入驻

90520

SpringBoot基础之MockMvc单元测试

真实对象速度很慢(例如,一个完整的数据库,在测试之前可能需要初始化); 真实的对象是用户界面,或包括用户界面在内; 真实的对象使用了回调机制; 真实对象可能还不存在; 真实对象可能包含不能用作测试(而不是实际工作...*/ mockMvc.perform(MockMvcRequestBuilders .get("/hello") // 设置返回值类型utf-8,否则默认为ISO-8859-1 ....执行请求 3、添加验证断言 4、添加结果处理器 5、得到MvcResult进行自定义断言/进行下一步的异步请求 6、卸载测试环境 注意事项:如果使用DefaultMockMvcBuilder进行...ResultActions,MockMvc.perform(RequestBuilder requestBuilder)的返回值,提供三种能力:andExpect,添加断言判断结果是否达到预期;andDo...HttpMessageNotReadableException.class.isAssignableFrom(result.getResolvedException().getClass()));//错误的请求内容

11.4K21

保姆级教程:Spring Boot 单元测试

):代表发送端发送的数据格式是application/json;charset=UTF-8 4. accept(MediaType.APPLICATION_JSON):代表客户端希望接受的数据类型application...ResultActions.andExpect(MockMvcResultMatchers.status().isOk()):方法看请求的状态响应码是否200如果不是则抛异常,测试不通过 8....ResultActions.andDo:添加一个结果处理器,表示要对结果做点什么事情,比如此处使用print():输出整个响应结果信息 六、断言的概念 断言(assert),是编程术语,表示一些布尔表达式...,程序员相信在程序中的某个特定点该表达式值真。...安装Postman 官方网站: https://www.getpostman.com/apps 安装后,Postman是介样婶儿滴~~ 如果你喜欢本文,欢迎关注我,订阅更多精彩内容 关注我回复「加群

2.5K20

使用MockMVC进行Controller单元测试

引入 由于MockMVC是Spring框架自带的测试组件,因此只要在项目中引入spring-boot-starter-test这个测试套件就可以使用Spring-test库中的MockMVC了。...接下来,将以查询接口例,介绍如何对该接口进行单元测试。...).andExpect(status().isOk()) //返回的状态是200 .andDo(print()) //打印出请求和相应的内容...(200),并打印请求和响应 5)对响应结果进行断言json) 来看一下用例执行过程中,通过print()方法打印的请求和响应 MockHttpServletRequest: HTTP Method...@RequestParam进行了测试(感兴趣的读者可以尝试调用接口时不提供id=1的入参) 3)对接口返回进行了断言 4)对接口返回对象的反序列化进行了断言 下一篇将介绍如何使用MockMvc进行集成测试

5.2K10

Spring Boot下的TDD(测试驱动开发)

2.在一个单元测试中只允许编写刚好能够导致失败的内容(编译错误也算失败)。 3、只允许编写刚好能够使一个失败的unit test通过的产品代码。 上面是三原则。...在一个现有的测试套件中迁移到使用Hamcrest风格的断言是很容易的,因为其他断言风格可以和Hamcrest的共存。 Mockito — 一个Java mock 框架。...JSONassert — 一个针对JSON进行断言的库。 JsonPath —适用于JSON的XPath。...如果您正在寻找加载完整的应用程序配置,而不是使用嵌入式数据库,则应将@SpringBootTest与@AutoConfigureTestDatabase结合使用,这时候就不要使用这个注解了。...Spring Boot也我们提供了支持。我们只需要在测试类上添加@WebMvcTest自动就配置了MockMvc类。通过MockMvc我们就可以模拟Controller请求了。

4.8K110

【保姆级教程】Spring Boot 单元测试

一、 单元测试的概念 二、单元测试的作用 三、Spring Boot引入的MockMvc的概念 四、Service层的单元测试 五、Controller层的单元测试 六、断言的概念 七、新断言assertThat...):代表发送端发送的数据格式是application/json;charset=UTF-8 4. accept(MediaType.APPLICATION_JSON):代表客户端希望接受的数据类型application...ResultActions.andExpect(MockMvcResultMatchers.status().isOk()):方法看请求的状态响应码是否200如果不是则抛异常,测试不通过 8....ResultActions.andDo:添加一个结果处理器,表示要对结果做点什么事情,比如此处使用print():输出整个响应结果信息 六、断言的概念 断言(assert),是编程术语,表示一些布尔表达式...,程序员相信在程序中的某个特定点该表达式值真。

27.3K86

【保姆级教程】SpringBoot单元测试,文末介绍Postman的基本使用

("/XXX/save") .content(json.getBytes()) //传json参数 .accept(MediaType.APPLICATION_JSON...):代表客户端希望接受的数据类型application/json;charset=UTF-8 header(“Authorization”,“Bearer XXXX”):代表在报文头添加一些必须的信息...).isOk()):方法看请求的状态响应码是否200如果不是则抛异常,测试不通过 ResultActions.andDo:添加一个结果处理器,表示要对结果做点什么事情,比如此处使用print():输出整个响应结果信息...六、断言的概念 断言(assert),是编程术语,表示一些布尔表达式,程序员相信在程序中的某个特定点该表达式值真。...可以在任何时候启用和禁用断言验证,因此可以在测试时启用断言而在部署时禁用断言。 使用断言是判断一个函数或对象的一个方法所产生的结果是否符合你期望的那个结果。

1.7K10

实践Jenkins集成Cobertura自动化构建SpringBoot工程

:Xpath在Json中的应用库; (g)JSONassert:Json断言库; spring-boot-starter-test的pom依赖图如下: ?...同时使用断言机制,来判断返回结果是否跟预期的一致。其中,准备好的Json数据放在SpringBoot工程的src/test/resources下面。...    public static final String  GENERATE_ORDERID_API_URL = "/rest/xxxxxxxxx";          //此处鉴权的Json测试数据...最后,通过assertEquals断言机制来确认接口返回是否Http响应的正确编码(200)。如同之前的一样,@After注解的方法cleanUp下执行提前插入数据的回滚和清理。...限于笔者的才疏学浅,对本文内容可能还有理解不到位的地方,如有阐述不合理之处还望留言一起探讨。

3.3K30

一分钟上手SpringBootTest,单元测试如此简单

Hamcrest: 提供了丰富的matcher Mockito: mock框架,可以按类型创建mock对象,可以根据方法参数指定特定的响应,也支持对于mock调用过程的断言。...JSONassert: JSON提供了断言功能 JsonPath: JSON提供了XPATH功能 编写单元测试基类 @RunWith(SpringRunner.class) @SpringBootTest...@AutoConfigureMockMvc 注解是用于自动配置 MockMvc,加上这个注解之后就可以直接通过 @Autowired 注入 MockMvc @WebAppConfiguration 注解声明为集成测试加载的...andExpect 方法是添加执行完成后的断言,添加ResultMatcher验证规则,验证控制器执行完成后结果是否正确,此处是验证状态是否是200 andDo 方法是添加一个结果处理器,比如在此处是...参考 SpringBoot Test及注解详解Spring Boot Test (二、注解详解)MockMvc详解

1.8K40
领券