根据项目对象模型(POM)的概念,Maven 可以管理一个项目的依赖关系、构建、报表以及信息中心的部分文档。
hamcrest 断言 maven依赖:

hamcrest支持多种语言,这里以 Java 为例:
进入到 hamcrest 断言的 Matchers 类中可以看到其中包含了相当丰富的断言匹配器,能更大程度上实现各种复杂断言场景:

官网也对断言进行了分类和说明:

先来看hamcrest断言和原生断言的写法区别,在官方文档中给出了的第一个实例如下:

在Junit4的官方也给出了说明:
可以看到,hamcrest 会统一先使用 assertThat 来声明一个断言,然后再在内部进行具体匹配器的断言细节,期望值和实际值进行对比;有了 hamcrest 断言,就可以直接摒弃原生的断言了~

Hamcrest断言功能很强大,那么如何 get 这个功能的正确打开方式呢?接下来用实操演示,带领大家一起来进行实操。毕竟:内化于心,外化于行才是最重要的。

  • equalTo: 判断相等
    在失败时可以看到打印了我的说明:actual value equal to 10 以及失败的对比,<> 表示原始类型
  • closeTo: 接近于多少,给定误差值源码中是这样写的

需要给定两个 double 类型的参数,一个是你要操作的数值,一个是误差范围;另外要注意的是实际值也必须是 double 类型才可以进行对比:

  • anyOf : 后面可跟上多个匹配器,只要其中任何一个满足条件就通过
  • allOf : 后面可跟上多个匹配器,只要其中任何一个不满足条件都不通过
    另外还有很多常用的匹配器,比如
  • hasItem, hasItems ,contains,等;具体的可以参考官方文档和类库
    hamcrest官方文档:
    http://hamcrest.org/JavaHamcrest/tutorial 1
    官方GitHub:
    https://github.com/junit-team/junit4/wiki/Matchers-and-assertthat 1
    Mvnrepository:
    https://mvnrepository.com/artifact/org.hamcrest/hamcrest-core/2.1

获取更多相关资料:请添加vx,ceshiren001
https://qrcode.ceba.ceshiren.com/link?name=article&project_id=qrcode&from=csdn&timestamp=1653961768&author=MM

同样是断言,为何 Hamcrest 如此优秀?相关推荐

  1. Spring Boot 的单元测试和集成测试

    点击蓝色"程序猿DD"关注我 回复"资源"获取独家整理的学习资料! 作者 | 万想 来源 | 公众号「锅外的大佬」 学习如何使用本教程中提供的工具,并在 Spr ...

  2. junit 经典示例_JUnit 4,JWebUnit,Arquillian和JSF单元示例教程

    junit 经典示例 Along side of development lifecycle, most of us looking for a way to be sure that the uni ...

  3. REST-Assured,接口自动化的 “瑞士军刀“- 初识篇

    REST-Assured 简介 REST-Assured 是一套基于 Java 语言实现的开源 REST API 测试框架,由作者 Johan Haleby 开发并维护,目前该项目在 GitHub 上 ...

  4. Junit的入门知识

    真正编程有一段时间了,但是一直都没有想过去学习Junit,也没有想过它的真正用处是什么.最近进入公司,觉得有必要去看看这些大路边上的知识了,看了一下尚学堂的视频. 什么是单元测试 Junit是Eric ...

  5. 在闲鱼搜“离开北上广”,才知道这届年轻人有多不容易

    点击"技术领导力"关注∆  每天早上8:30推送 转载自| 中国有淘宝 不到离开一座城市的时候,你都不知道自己有多少东西可以舍弃. 当你在闲鱼上搜索"离开北京" ...

  6. springboot系列文章之使用单元测试

    前言 springboot提供了 spirng-boot-starter-test以供开发者使用单元测试,在引入 spring-boot-starter-test依赖后: <dependency ...

  7. Web自动化测试之playwright:概述

    playwright是由微软开发的Web UI自动化测试工具, 支持Node.js.Python.C# 和 Java语言,本文将介绍playwright的特性以及它的简单使用. 目录 playwrig ...

  8. 初学者的Clojure宏

    本文将逐步指导您(甚至 字符一个字符 )通过Clojure中编写宏的过程. 在解释幕后情况时,我将重点介绍基本的宏观特征. 想象一下,您将要为Clojure编写一个断言库,类似于FEST断言 , Sc ...

  9. clojure 宏_初学者的Clojure宏

    clojure 宏 本文将逐步指导您(甚至 逐字符 )). 在解释幕后情况时,我将重点介绍基本的宏观特征. 想象一下,您将要为Clojure编写一个断言库,类似于FEST断言 , ScalaTest断 ...

  10. springboot 之单元测试

    前言 springboot提供了 spirng-boot-starter-test以供开发者使用单元测试,在引入 spring-boot-starter-test依赖后: 1 2 3 4 5 < ...

最新文章

  1. [转]产品需求文档(PRD)的写作
  2. #region(C# 参考)
  3. 用CURD来拯救前端的一切的一切
  4. Spark-submit提交任务到集群
  5. 世界头号毒枭古斯曼被捕,全因被内部IT男出卖!
  6. Android中将一个图片切割成多个图片[转]
  7. 我的世界java刷怪数量_Minecraft我的世界Java版18w16a更新发布
  8. OpenCV示例学习(二): 基本图形绘制算子:line(),circle(),fillPoly(), ellipse()
  9. 错误笔记:在OleDb执行下Access ,程序不报错,但是Update也更新不成功的
  10. 力扣1716.计算力扣银行的钱
  11. 华为关闭telnet命令_华为交换机关闭Telnet、开启SSH服务命令
  12. 交通灯c语言单片机程序,基于51单片机的一个简单交通灯程序
  13. 俄罗斯方块c语言游戏代码大全,C语言实现俄罗斯方块小游戏
  14. 简历关于计算机办公软件怎么写,简历中怎么写办公软件
  15. 如何理解前后端分离HTML5,Web前后端分离开发思路
  16. java8使用并行流parallelStream以及普通迭代,并行流,普通流之间的效率对比
  17. python使用seek函数报错:io.UnsupportedOperation: can't do nonzero end-relative seeks
  18. echarts 多条折线时数量由多到少更新数据时残留问题
  19. 学雷锋是不需要动员的
  20. 编译小米2s CyanogenMod 版本遇到的几个问题

热门文章

  1. phpwind不支持php7,phpwind8.7 phpwind v8.7 新功能曝光
  2. Windows系统目录下文件夹汇总
  3. 积分公式和常用方法总结
  4. Bootstrap 按钮(实例 )
  5. android ppsspp 存档位置,小鸡模拟器游戏存档在哪个文件夹
  6. mysql adodb_MySql AdoDB基本的函数
  7. php中adodb中文手册,[转载]ADODB中文手册(4)
  8. 新曼联:弗格森制造 第七章 欧战惊喜 之4 安心之选:埃尔文
  9. 杀毒软件免费下载 2013排行榜(TOP8)
  10. 从零开始研发GPS接收机连载——1、想法的萌发