前言:
1、JUnit是一个Java语言的单元测试框架,是程序员测试,即所谓白盒测试,因为程序员知道被测试的软件如何(How)完成功能和完成什么样(What)的功能。JUnit框架用一组assert方法封装了一些常用的断言。
2、Hamcrest:JUnit4.4引入了Hamcrest框架,Hamcest提供了一套匹配符Matcher,这些匹配符更接近自然语言,可读性高,更加灵活。Hamcrest 提供了大量被称为“匹配器”的方法。
Hamcrest匹配器:
核心: anything - 总是匹配,如果你不关心测试下的对象是什么是有用的 describedAs - 添加一个定制的失败表述装饰器 is - 改进可读性装饰器 - 见下 “Sugar” 逻辑: allOf - 如果所有匹配器都匹配才匹配,像Java里的&& anyOf - 如果任何匹配器匹配就匹配,像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 - 测试字符串匹配
3、Eclemma对由 Java 语言编写的程序进行覆盖测试。
一、安装Junit、Hamcrest、Eclemma
下载Junit、Hamcrest:http://mvnrepository.com/artifact/org.hamcrest/hamcrest-core http://mvnrepository.com/artifact/junit/junit
下载Eclemma:Eclipse的商店里下载:help - Eclipse Marketplace - search Eclemma 重启Eclipse后即可。
引入Junit、Hamcrest:可以直接拖进新建的文件夹lib,也可以右键项目 - properties - Java Build Path - Libraries - Add External JARS
二、Eclemma使用
三、JUnit使用
四、代码
为了测试多组参数,使用了JUnit参数化测试。
GitHub:源码和测试代码