简而言之,JUnit:单元测试断言

本文详细介绍了JUnit单元测试中的断言技术,包括JUnit的内置断言、Hamcrest匹配器和AssertJ的使用。通过示例展示了如何创建和使用自定义匹配器和断言,探讨了它们的优缺点,以提高单元测试的可读性和表达性。
摘要由CSDN通过智能技术生成

简而言之,本章涵盖了各种单元测试断言技术。 它详细说明了内置机制, Hamcrest匹配器和AssertJ断言的优缺点 。 正在进行的示例扩大了该主题,并说明了如何创建和使用自定义匹配器/断言。

单元测试断言

信任但要验证
罗纳德·里根(Ronald Reagan)

岗位测试结构解释了为什么单元测试通常分阶段进行。 它澄清说, 真正的测试结果验证在第三阶段进行。 但是到目前为止,我们只看到了一些简单的示例,主要使用了JUnit的内置机制。

Hello World所示,验证基于错误类型AssertionError 。 这是编写所谓的自检测试的基础。 单元测试断言将谓词评估为truefalse 。 如果为false ,则抛出AssertionError 。 JUnit运行时捕获此错误并将测试报告为失败。

以下各节将介绍三种较流行的单元测试断言变体。

断言

JUnit的内置断言机制由类org.junit.Assert 。 它提供了两种静态方法来简化测试验证。 以下代码片段概述了可用方法模式的用法:

fail();
fail( "Houston, We've Got a Problem." );

assertNull( actual );
assertNull( "Identifier must not be null.",
            actual );

assertTrue( counter.hasNext() );
assertTrue( "Counter should have a successor.",
            counter.hasNext() );

assertEquals( LOWER_BOUND, actual );
assertEquals( "Number should be lower bound value.", 
              LOWER_BOUND,
              actual );
  1. Assert#fail()无条件地引发断言错误。 这对于标记不完整的测试或确保引发了预期的异常可能很有帮助(另请参见“ 测试结构”中的“预期异常”部分)。
  2. Assert#assertXXX(Object)用于验证变量的初始化状态。 为此,存在两个称为assertNull(Object)assertNotNull(Object)
  3. Assert#assertXXX(boolean)方法测试boolean参数传递的预期条件。 调用assertTrue(boolean)期望条件为true ,而assertFalse(boolean)期望相反。
  4. Assert#assertXXX(Object,Object)Assert#assertXXX(value,value)方法用于对值,对象和数组进行比较验证。 尽管结果没有区别,但通常的做法是将期望值作为第一个参数,将实际值作为第二个参数。

所有这些类型的方法都提供带有String参数的重载版本。 如果发生故障,此参数将合并到断言错误消息中。 许多人认为这有助于更清楚地指定失败

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值