AssertJ简介

简介: JUnit和Hamcrest学Java的一定知道JUnit吧,它是一个著名的Java单元测试框架。我们在使用JUnit测试的时候,一般情况下会使用它的Assert类下的各种assertXXX方法。

JUnit和Hamcrest

学Java的一定知道JUnit吧,它是一个著名的Java单元测试框架。我们在使用JUnit测试的时候,一般情况下会使用它的Assert类下的各种assertXXX方法。如果是细心一点的用户可能会发现JUnit包含了一个依赖Hamcrest,这是一个断言库。我们可以使用断言库来进行复杂的断言操作。

但是Hamcrest有几个缺点:一是缺乏更新,我看了看MavenCentral上,Hamcrest库最近更新还是2014年,因此对新的Java 8支持可能不够充分;二是Matcher分散在多个类中,编写困难,我们为了编写类似assertThat(responseString, anyOf(containsString("color"), containsString("colour")));这样的代码,需要静态引入多个类(使用IDEA还好,用Eclipse的静态导入更麻烦);三是JUnit仅依赖了Hamcrest核心包,只附带了最基本的断言功能,如果我们希望断言数字大小之类的话,还需要自己引入Hamcrest完整包,比较麻烦。

AssertJ

Hamcrest缺点不少,自然有更好的类库出现。FEST就是其中之一。不幸的是,FEST也很久不更新了。有人就在FEST的基础上,增加了很多新功能,这就是AssertJ

AssertJ有1、2、3三个版本,分别用于JDK6、7、8(及以上)。要在JDK 8中使用AssertJ,在项目中添加如下依赖(假如你使用的是Gradle)。

testCompile 'org.assertj:assertj-core:3.6.2'

然后在测试类中静态导入所有断言。

import static org.assertj.core.api.Assertions.*;

然后就很简单了。在测试方法中需要断言的地方键入assertThat即可。

assertThat(objectUnderTest).//断言操作

由于AssertJ的断言操作全在一个类中,所以当我们输入.之后,IDE就会嗖嗖的把所有断言列出来。

AssertJ支持所有Java基本类型,所以我们只要引入这一个包就可以满足大多数需求。如果需要JodaTime等支持,引入相应AssertJ扩展即可。由于AssertJ使用确实很简单,所以我感觉没什么写的了。有需要的话看看它的官网上的文档即可。

参考资料

https://github.com/junit-team/junit4/wiki/Matchers-and-assertthat

https://joel-costigliola.github.io/assertj/assertj-core.html

相关文章
五分钟带你玩转sonar(五)教你使用SonarLint插件
五分钟带你玩转sonar(五)教你使用SonarLint插件
5331 0
五分钟带你玩转sonar(五)教你使用SonarLint插件
|
5月前
|
机器学习/深度学习 人工智能 监控
AI 视频监控技术核心解析:三大底层能力支撑智能化升级
AI视频监控突破传统安防局限,依托三大核心技术:从“被动感知”到“主动理解”,实现精准场景识别;从“孤立运行”到“深度协同”,构建业务联动闭环;从“高门槛应用”到“普惠化落地”,降低部署成本与使用门槛。技术融合场景定制、智能决策与轻量化架构,推动安防向高效、智能、普及化方向升级。
1132 0
|
6月前
|
API vr&ar 索引
1张照片 2秒钟 一键变身3D数字人
LHM是一种基于单视角图像的端到端Transformer模型,结合SMPL-X人体模型与高斯渲染技术,可从一张照片生成可驱动的3D数字人。它采用Vision Transformer和Mae模型提取特征,并通过Body-Head Transformer融合2D与3D信息,输出具有动作能力的高精度3D人体模型。应用于动作重现、游戏角色生成及虚拟现实等领域,代码已开源并提供在线体验入口。
679 1
|
12月前
|
存储 开发工具 数据库
初识 Git——《Pro Git book》
Git 是一种分布式版本控制系统,用于跟踪文件的修改并允许多个开发人员协作开发项目。它通过保存完整的项目历史记录来确保代码的完整性和安全性。
165 20
初识 Git——《Pro Git book》
|
前端开发 Java 数据安全/隐私保护
Spring Boot3自定义异常及全局异常捕获
Spring Boot3自定义异常及全局异常捕获
1825 1
|
Prometheus 监控 Cloud Native
简单搭建基本Prometheus监控系统
简单搭建基本Prometheus监控系统
343 0
|
JSON Java 测试技术
SpringCloud2023实战之接口服务测试工具SpringBootTest
SpringBootTest同时集成了JUnit Jupiter、AssertJ、Hamcrest测试辅助库,使得更容易编写但愿测试代码。
490 3
|
Java Maven
Maven命令行参数详解
Maven命令行参数详解
713 0
|
算法 Unix Linux
Linux进程与信号:正常与异常的退出机制探索
Linux进程与信号:正常与异常的退出机制探索
1068 1
|
智能硬件
华为鸿蒙操作系统有哪些应用场景?
华为鸿蒙操作系统有哪些应用场景?
3917 1

热门文章

最新文章