单元测试辅助工具Hamcrest详解

Hamcrest是一款用以编写matcher对象的框架,以类库的形式发布。一个matcher对象就是一个明确定义的匹配规则。

Hamcrest只适合用于编写Java单元测试,并不适用于UI验证或数据过滤。

使用Hamcrest的步骤如下:

1.静态导入类

import static org.hamcrest.Matchers.*;
import static org.hamcrest.MatcherAssert.assertThat;

说明,其中Matchers类提供了大量用以定义匹配规则的方法。

而assertThat()用以验证测试结果,从而可以不必与具体的测试框架绑定。

2.编写测试用例

...

@Test
public void oneTest(){
  Biscuit thisBiscuit = new Biscuit("Ginger");
  Biscuit thatBiscuit = new Biscuit("Ginger");
  assertThat(thisBiscuit, eq(thatBiscuit));
}

注意这里assertThat()的用法。

如果在一个测试用例中有多个assertThat(),还可以为每个assertThat()起一个唯一的名,示例如下:

...
assertThat("name1", thisBiscuit, eq(thatBiscuit));
assertThat("name2", thisBiscuit, eq(thatBiscuit));
...

补充:常用的Matchers方法

  • anything()
  • is(),只为提高测试代码的可读性,没有实际意义
  • allOf()
  • anyOf()
  • not()
  • eq()
  • instanceOf()
  • sameInstance()
  • isCompatbleType()
  • notNullValue()
  • nullValue()
  • hasProperty()
  • array()
  • hasKey()
  • hasValue()
  • hasEntry()
  • hasItem()
  • closeTo()
  • greaterThan()
  • greaterThanOrEqualTo()
  • lessThan()
  • lessThanOrEqualTo()
  • equalToIgnoringCase()
  • equalToIgnoringWhiteSpace()
  • containsString()
  • endsWith()
  • startsWith()

除了Hamcrest提供的标准Matchers类,测试开发人员还可以定制扩展自己的Matchers类,此处从略。



  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值