Hamcrest简介以及常用方法

本文详细介绍了如何在JUnit测试中利用Hamcrest库增强断言能力,通过实例展示了如何使用Hamcrest进行复杂的断言操作,包括数字、文本、集合和对象的比较。特别强调了在使用JUnit4.10时将Hamcrest jar包放置于junit jar包之前的必要性,以避免出现特定异常。此外,文章还总结了常用比较方式和Hamcrest提供的各种实用方法,帮助开发者更高效地进行测试。

Hamcrest的Jar下载地址

<span style="font-size:18px;">
</span>
<span style="font-size:18px;">Hamcrest可以有效增加junit的测试能力,用一些相对通俗的语言来进行测试</span>


要使用junit中的assertThat来进行断言


第一个参数表示实际值,第二个参数表示hamcrest的表达式

@Test
	public void testHamcrest() {
		// 首先需要静态导入 import static org.hamcrest.Matchers.*;
		// 判断50是否大于20并且小于60,
		assertThat(50, allOf(greaterThan(20), lessThan(60)));
		// 判断一个字符串是否以xiao开头,是否以gou结尾,allOf是并且的意思
		assertThat("xiaogou", allOf(startsWith("xiao"), endsWith("gou")));
	}

特别注意:如果使用junit4.10,必须把hamcrest的jar包移到junit的jar之前,否则,组合条件allOf,anyOf都会抛出异常


常用的比较方式


逻辑
  allOf - 如果所有匹配器都匹配才匹配, short circuits (很难懂的一个词,意译是短路,感觉不对,就没有翻译)(像 Java &&)
  anyOf - 如果任何匹配器匹配就匹配, short circuits (像 Java ||)
  not - 如果包装的匹配器不匹配器时匹配,反之亦然


对象
  equalTo - 测试对象相等使用Object.equals方法
  hasToString - 测试Object.toString方法
  instanceOf, isCompatibleType - 测试类型
  notNullValue, nullValue - 测试null
  sameInstance - 测试对象实例
  Beans
  hasProperty - 测试JavaBeans属性


集合
  array - 测试一个数组元素test an array’s elements against an array of matchers
  hasEntry, hasKey, hasValue - 测试一个Map包含一个实体,键或者值
  hasItem, hasItems - 测试一个集合包含一个元素
  hasItemInArray - 测试一个数组包含一个元素


数字
  closeTo - 测试浮点值接近给定的值
  greaterThan, greaterThanOrEqualTo, lessThan, lessThanOrEqualTo - 测试次序


文本
  equalToIgnoringCase - 测试字符串相等忽略大小写
  equalToIgnoringWhiteSpace - 测试字符串忽略空白
  containsString, endsWith, startsWith - 测试字符串匹配



### 下载 `hamcrest-2.2.jar` 文件的方法 为了下载 `hamcrest-2.2.jar` 文件,可以访问 Maven 中央仓库或其他可信的开源库托管站点。以下是具体方法: #### 方法一:通过 Maven Central Repository 下载 Maven 是 Java 社区广泛使用的依赖管理工具,其中央仓库提供了大量的第三方库。可以通过以下链接直接访问并下载所需的 JAR 文件: [Maven Central - Hamcrest](https://search.maven.org/artifact/org.hamcrest/hamcrest/2.2/jar)[^3] 点击页面上的“Download”按钮即可获取该文件。 #### 方法二:使用命令行工具(如 `wget` 或 `curl`) 如果希望通过脚本自动化完成下载操作,可利用如下命令实现: ```bash wget https://repo1.maven.org/maven2/org/hamcrest/hamcrest/2.2/hamcrest-2.2.jar ``` 或者使用 `curl` 命令: ```bash curl -O https://repo1.maven.org/maven2/org/hamcrest/hamcrest/2.2/hamcrest-2.2.jar ``` #### 方法三:借助构建工具自动拉取 对于基于 Maven 的项目,可以在项目的 `pom.xml` 文件中添加以下配置来引入依赖项: ```xml <dependency> <groupId>org.hamcrest</groupId> <artifactId>hamcrest</artifactId> <version>2.2</version> </dependency> ``` 运行 `mvn clean install` 后,Maven 将会自动从远程仓库下载所需文件至本地缓存目录[^4]。 同样地,在 Gradle 构建环境中也可以采用类似的声明方式: ```gradle implementation 'org.hamcrest:hamcrest:2.2' ``` ### 注意事项 在实际应用过程中,请务必确认所选版本与现有环境兼容,并遵循相关许可证规定合法使用软件资源。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值