Junit断言

        JUnit 是一个流行的 Java 测试框架,它提供了一套丰富的断言(assertions)机制来帮助开发者验证代码的行为是否符合预期。断言是自动化测试中非常重要的一个概念,它用于检查代码是否按预期工作。如果断言失败,测试会立即停止执行,并报告失败的原因。

在 JUnit 中,断言主要通过 org.junit.Assert 类(在 JUnit 4 中)或者通过静态导入 JUnit 5 的 org.junit.jupiter.api.Assertions 类中的静态方法来实现。

JUnit 4 中的断言

        在 JUnit 4 中,你可以使用 org.junit.Assert 类中的静态方法来执行断言。以下是一些常见的断言方法:

  • assertEquals(expected, actual): 检查两个值或数组是否相等。
  • assertTrue(condition): 检查条件是否为真。
  • assertFalse(condition): 检查条件是否为假。
  • assertNotNull(object): 检查对象是否不为 null。
  • assertNull(object): 检查对象是否为 null。
  • assertSame(expected, actual): 检查两个对象引用是否指向同一个对象。
  • assertNotSame(unexpected, actual): 检查两个对象引用是否不指向同一个对象。

        JUnit 5 中的断言

JUnit 5 引入了更丰富的断言库,并且允许通过静态导入 org.junit.jupiter.api.Assertions 类中的静态方法来实现断言,使得代码更加简洁。以下是一些常见的断言方法(与 JUnit 4 类似,但可能有一些差异和新增):

  • assertEquals(expected, actual): 检查两个值是否相等。
  • assertTrue(condition): 检查条件是否为真。
  • assertFalse(condition): 检查条件是否为假。
  • assertNotNull(object): 检查对象是否不为 null。
  • assertNull(object): 检查对象是否为 null。
  • assertSame(expected, actual): 检查两个对象引用是否相同。
  • assertNotSame(unexpected, actual): 检查两个对象引用是否不同。

此外,JUnit 5 还添加了一些新的断言方法,如:

  • assertDoesNotThrow(executable, exceptionType): 验证代码块执行时不会抛出任何异常或特定类型的异常。
  • assertThrows(expectedType, executable): 验证代码块执行时会抛出特定类型的异常。
  • assertAll(executables): 将多个断言合并为一个,以便所有断言都失败时报告所有失败信息,而不是在第一个断言失败时就停止。

示例

JUnit 4 示例

import static org.junit.Assert.*; 


import org.junit.Test; 


public class MyTest { 


@Test 
public void testAddition() { 
assertEquals("2 + 2 should equal 4", 4, 2 + 2); 
} 
}

JUnit 5 示例

import static org.junit.jupiter.api.Assertions.*; 


import org.junit.jupiter.api.Test; 


public class MyTest { 


@Test 
public void testAddition() { 
assertEquals(4, 2 + 2, "2 + 2 should equal 4"); 
} 


@Test 
public void testDivision() { 
assertThrows(ArithmeticException.class, () -> { 
int result = 10 / 0; 
}); 
} 
}

        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值