
上QQ阅读APP看书,第一时间看更新
第2章
Hamcrest:优雅强大的对象匹配器
第1章介绍了单元测试方法中应该包含实际值与期望值的断言语句,该语句旨在断言源程序方法的返回值在某种测试条件下是否满足预期,进而验证源程序方法的正确性。一种简洁的说法就是,单元测试是用代码测试代码。在单元测试中,断言(Assertion)语句直接决定了源程序代码的功能正确与否。试想一下,如果所使用的断言语句本身就存在缺陷,那么原本正确的程序代码很有可能会判错。在JUnit 4.4以前的版本中,我们可以直接使用JUnit自带的断言方法,比如,assertTrue()、assertFalse()、assertEquals()、assertNotEquals()等。虽然在大多数情况下,这些断言方法可以满足我们的断言需要,但是JUnit自带的断言方法也存在着某些缺陷,本章将会逐一列举并说明。
自JUnit 4.4版本引入了对Hamcrest的依赖之后,我们就可以直接使用Hamcrest提供的对象匹配器进行断言了。本书关于断言的所有操作都是直接使用Hamcrest提供的对象匹配器进行的。本章将详细讲解Hamcrest的优点及其使用方法。
本章将重点介绍如下内容。
- 相对于JUnit的断言,Hamcrest有哪些优势?
- Hamcrest提供了哪些不同类型的对象匹配器?
- 如何自定义Hamcrest对象匹配器?
- 在REST-Assured中如何使用Hamcrest?