上一章讲了一件事就是Junit的断言以及单元测试的基本内容,对单元测试有个基本了解。
现在了解下除了Assert的方法外还有别的方法可以单元测试:Assume,
Assume类
这是一个假设类,测试有意义的条件假设,失败并不以为代码被破坏,失败了也就仅仅会忽略。
看结果没有报错,因为这是一个假设,是一个失败的假设。
看以下是一个单元测试错的情况:
很明显的一个感叹号,不是三个杠的忽略,在右侧有明显的错误原因。
现在了解了是一个junit的测试内容,但是呢,有的时候并不能完全适用,可以借助第三方的类库来完成—— Hamcrest。
这个是可以完成一些比较复杂的内容,但是这个类库仅支持Java等,并不支持kotlin,所以在Android上的应用并不广泛。
简单介绍下常用的方法
anything - 总是匹配,如果你不关心测试下的对象是什么是有用的
allOf - 如果所有匹配器都匹配才匹配,像Java里的&&
anyOf - 如果任何匹配器匹配就匹配,像Java里的||
not - 如果包装的匹配器不匹配器时匹配,反之亦然
equalTo - 测试对象相等使用Object.equals方法
hasToString - 测试Object.toString方法
instanceOf, isCompatibleType - 测试类型
notNullValue, nullValue - 测试值是否null
sameInstance - 测试对象实例
hasEntry, hasKey, hasValue - 测试一个Map包含一个实体,键或者值
hasItem, hasItems - 测试一个集合包含一个元素
hasItemInArray - 测试一个数组包含一个元素
equalToIgnoringCase - 测试字符串相等忽略大小写equalToIgnoringWhiteSpace - 测试字符串忽略空白
containsString, endsWith, startsWith - 测试字符串匹配,分别是匹配是首个字母,尾字母等
就不一一进行介绍了,可以解决部分Junit无法完成的测试。