一直以来没有专门了解过JUnit单元测试,直到最近谷歌IO大会上将Kotlin作为Google的官方语言后,自己从Kotlin官网Done下来kotlin_koans准备自己来练习一把熟悉下这门语言,谁知道当自己运行第一个test的时候就尴尬了,报错了。网上查了好久这个报错,也没有弄太明白,后来才反应过来,这里是用的JUnit测试啊。我对它还不了解,索性还是先来把核心问题给弄懂吧,先瞅瞅这个单元测试总要用到的断言(assert)吧。
JUnit为我们提供了一些辅助的函数,用来帮助我们来判断被测试的方法是否如我们预期的效果一样正常执行。这些辅助函数被称之为断言。
assertEquals(Object expected, Object actual)
assertEquals(String message, Object expected, Object actual)
String message: 可选参数,将在发生错误时报告这个消息
Object expected: 期望值,一般为用户指定的内容
Object actual: 被测试的代码实际返回的结果
当expected(期望值)和actual(实际值)为 float 或者 double 类型时,还可以有另一个参数 delta:
例: assertEquals(String message, float expected, float actual, float delta)
delta 这个参数为误差参数,表示如果 expected 和 actual 之间的差值在 delta 范围之内则认为该断言的结果是正确的。
assertTrue(boolean condition)
assertTrue(String message, boolean condition)
String message: 可选参数,将在发生错误时报告这个消息
boolean condition:待验证的 Boolean 类型值
assertTrue 该断言用来验证给定的布尔型值是否为真,如果结果为假,则验证失败;
相反,assertFalse 用来验证给定的布尔型值是否为假,如果结果为真,则验证失败。
assertNull(Object object)
assertNull(String message, Object object)
String message: 可选参数,将会在发生错误时报告这个消息
Object object: 待验证是否为 Null 的对象
assertNull 该断言用来验证给定的对象是否为 Null ,如果给定对象为 非Null,则验证失败。
相反,assertNotNull 用来验证给定的对象是否为 非Null,如果为 Null,则验证失败。
assertSame(Object expected, Object actual)
assertSame(String message, Object expected, Object actual)
String message: 可选参数,将会在发生错误时报告这个消息
Object expected:期望值
Object actual:被测试代码返回的实际值
assertSame 该断言用来验证 expected 和 actual 的引用是否为同一个对象的引用,如果不是同一引用,则验证失败。
相反,assertNotSame 用来验证 expected 和 actual 的引用是否为不同对象的引用,如果为同一对象引用,则验证失败。
Fail()
Fail(String message)
String message是个可选参数,假如提供,将会在发生错误时报告这个消息。
该断言会使测试立即失败,通常用在测试不能达到的分支上(如异常)。
本人能力有限,如果此博文中有哪里讲得让人难以理解,欢迎留言交流,若有讲解错的地方欢迎指出,大家互相学期,共同进步!