JUnit笔记--JUnit中的断言

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/cc907566076/article/details/78576686

断言是在开发和单元测试时开发人员使用的,用来验证我们代码的编写虽然编译通过了,但逻辑上是否有漏洞,是否经得住程序运行的各种考验。比如一个简单的获得数组中最大值的方法getMax中,如果数组传来为空,如果数组中值皆为一致的数字,我们的方法getMax还能获得正确的结果吗?

java中的断言,参考:https://www.cnblogs.com/hujingwei/p/5147236.html

此处简单介绍JUnit中几种断言方法

下面每个方法都会记录是否失败了(断言为假)或者有错误了(遇到一个意料外的异常)的情况,并且通过JUnit的一些类来报告这些结果。
当一个失败或者错误出现的时候,当前测试方法的执行流程将会被中止,但是(位于同一个测试类中的)其他测试将会继续运行。
断言是单元测试的最基本组成部分。
因此,JUnit程序库提供了不同形式的多种断言。

assertEquals

assertEquals([String message],expected, actual)
这是使用得最多的断言形式。
expected是你期望值(通常都是硬编码的),actual是被测试代码实际产生的值,message是一个可选的消息,如果提供的话,将会在发生错误的时候报告这个消息。当然可以不提供这个参数。

任何对象都可以拿来做相等行测试:适当的相等性判断方法会被用来做这样的比较。譬如可能会使用这个方法来比较两个字符串的内容是否相等,此外对于原生类型(boolean,int,short等)和object类型也提供了不同的函数签名。值得注意的是使用原生数组的equals方法时,并不是比较数组的内容,而是比较数组引用本身,而这大概不是你希望的吧。

计算机并不能精确地表示所有的浮点数,通常都会有一些偏差。因此,如果你想用断言来比较浮点数(java中float或是double的类型的数),则需要制定一个额外的误差参数。表明你需要多接近才能认为两数“相等”。对于商业程序而言,只要精确到小数点后4位或者后5位就足够了。对于进行科学计算的程序而言,则可能需要更高的精度。
assertEquals([String message],expected,actual,tolerance)
例如,下面的断言将会检查实际的计算结果是否等于3.33,但是该检查只精确到小数点的后两位。
assertEquals(“should be 3 1/3”, 3.33 , 10.0/3.0, 0.01)

assertNull

assertNull([String message],java.lang.Object object)
assertNotNull([String message],java.lang.Object object)
验证一个给定的对象是否为null(或者非null),如果答案为否,则将会失败。Message参数可选的。

assertSame

assertSame([String message],expected,actual)
验证expected参数和actual参数所引用的是否为同一个对象,如果不是的话将会失败,message参数是可选的
assertNotSame([String message],expected,actual)

assertTrue

assertTrue([String message],Boolean condition)
验证给定的二元条件是否为真,如果为假的话,将会失败。Message参数可选
如果你发现测试代码像下面这样,宛如废话一般:
assertTrue(true);
那么就该好好想想这些代码了。对于这种写法。除非是被用于确认某个分支,或者异常逻辑才有可能是正确的选择;否则的话,很可能是一个糟糕的主意。

assertFalse([String message],Boolean condition)

fail

fail([String message])
上面的断言将会使测试立即失败,其中message参数是可选的.这种断言通常被用于标记某个不应该被到达的分支(例如,在一个预期发生的异常之后)。

猜你喜欢

转载自blog.csdn.net/cc907566076/article/details/78576686
今日推荐