Hamcrest 学习笔记
TODO
Junit
JUnit框架用一组assert方法封装了一些常用的断言。这些assert方法可以帮我们简化单元测试的编写。这样的话,Junit就可以根据这些断言是否抛出 AssertionFailedError 错误来判断测试用例的执行结果。
Hamcrest
使用过Junit 的应该有过体验:在实际开发中,一些基本的断言,如eqaul,null,true它们的可读性并不是很好。而且很多时候我们要比较对象、集合、Map等数据结构。这样我们要么进行大段的字段获取再断言。或者干脆自己编写表达式并断言其结果。
JUnit4.4引入了Hamcrest框架,Hamcest提供了一套匹配符Matcher,这些匹配符更接近自然语言,可读性高,更加灵活。
Hamcrest 提供了大量被称为“匹配器”的方法。其中每个匹配器都设计用于执行特定的比较操作。Hamcrest的可扩展性很好,让你能够创建自定义的匹配器。最重要的是,JUnit也包含了Hamcrest的核心,提供了对Hamcrest的原生支持,可以直接使用Hamcrest。当然要使用功能齐备的Hamcrest,还是要引入对它的依赖。
Tutorial: http://hamcrest.org/JavaHamcrest/tutorial
API: http://hamcrest.org/JavaHamcrest/javadoc/2.1/
1 | import java.util.ArrayList; |
1 | import org.junit.Assert; |
1 | package Matchers; |
1 | package Matchers; |
harmcrest的核心类从Matchers转为CoreMatchers。用户在使用的时候需要注意更新。
当使用assertThat时,静态导入时,导入的路径变为:
1 | import static org.hamcrest.CoreMatchers.*; |
封面来源: pixabay, free for commercial use.
Hamcrest 学习笔记