当前位置: 首页 > 工具软件 > hamcrest > 使用案例 >

Hamcrest简介以及常用方法

麹正业
2023-12-01

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 - 测试字符串匹配



 类似资料: