关于软件测试:同样是断言为何-Hamcrest-如此优秀

3次阅读

共计 819 个字符,预计需要花费 3 分钟才能阅读完成。

依据我的项目对象模型(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/JavaHamcr…
    官网 GitHub:
    https://github.com/junit-team…
    Mvnrepository:
    https://mvnrepository.com/art…
正文完
 0