JUnit断言方法

junit的一些断言方法如下:



 其中方法:

public static void assertEquals(Object[] expected, Object[] actual)
public static void assertEquals(String message, Object[] expected, Object[] actual)

是JUnit 4 为比较数组添加的两个 assert() 方法.这两个方法以最直接的方式比较数组:如果数组长度相同,且每个对应的元素相同,则两个数组相等,否则不相等。数组为空的情况也作了考虑。 .

常用断言介绍:

1. assertEquals([String message],Object target,Object result)  target与result不相等,中断测试方法,输出message
assertEquals(a, b) 测试a是否等于b(a和b是原始类型数值(primitive value)或者必须为实现比较而具有equal方法)
assertEquals断言两个对象相等,若不满足,方法抛出带有相应信息的AssertionFailedError异常。
例如计算器加法功能的测试可以使用一下验证:
Assert.assertEquals(0,result);

2. assertTrue/False([String message],Boolean result) Result为 false/true,中断测试方法,输出message
assertTrue 断言条件为真,若不满足,方法抛出带有相应信息的AssertionFailedError异常。
assertFalse 断言条件为假,若不满足,方法抛出带有相应信息的AssertionFailedError异常。
assertFalse(a) 测试a是否为false(假),a是一个Boolean数值;

3. assertNotNull/Null([String message],Obejct result )  Restult == null/result!=null,中断测试方法,输出message
assertNull   断言对象为null,若不满足,方法抛出带有相应信息的AssertionFailedError异常。
assertNotNull 断言对象不为null,若不满足,方法抛出带有相应信息的AssertionFailedError异常。
assertNotNull(a) 测试a是否非空,a是一个对象或者null;

4.assertSame/NotSame(Object target,Object result) Traget与result 不指向/指向 同一内存地址(实例),中断测试方法,输出message
assertSame 断言两个引用指向同一个对象,若不满足,方法抛出带有相应信息AssertionFailedError异常。
assertNotSame 断言两个引用指向不同对象,若不满足,方法抛出带有相应信息的AssertionFailedError异常。
assertNotSame(a, b) 测试a和b是否没有都引用同一个对象;

5. fail([String message])  中断测试方法,输出message
Fail  让测试失败,并给出指定信息。

### JUnit 断言的用法与示例 JUnit 是一种广泛使用的 Java 测试框架,提供了多种断言方法来验证测试结果是否符合预期。以下是关于 JUnit 断言的一些核心概念及其具体实现。 #### 基本断言方法 JUnit 提供了一系列静态方法用于执行断言操作,这些方法通常位于 `org.junit.jupiter.api.Assertions` 类中[^1]。下面是一些常用的断言方法: - **assertEquals(expected, actual)** 验证两个对象或基本类型的值是否相等。如果它们不相等,则抛出异常并终止当前测试。 ```java assertEquals(4, 2 + 2); // 正确 ``` - **assertNotEquals(unexpected, actual)** 验证实际值是否不同于某个特定值。 ```java assertNotEquals(5, 2 + 2); // 正确 ``` - **assertTrue(condition)** 和 **assertFalse(condition)** 分别用来验证条件表达式的布尔值是否为真或假。 ```java assertTrue(2 + 2 == 4); // 正确 assertFalse(2 + 2 != 4); // 正确 ``` - ** assertNull(object)** 和 ** assertNotNull(object)** 用于判断对象是否为空或非空。 ```java String nullString = null; assertNull(nullString); // 正确 String nonNullString = "Hello"; assertNotNull(nonNullString); // 正确 ``` #### 复杂断言支持 除了基础功能外,JUnit 还允许开发者通过自定义消息增强错误报告能力。这可以通过向断言方法传递额外参数完成: ```java int result = 3 * 7; assertEquals(21, result, "Multiplication failed"); // 如果失败会显示指定的消息 ``` 对于更复杂的场景,可以利用 Lambda 表达式或者第三方库(如 AssertJ 或 Hamcrest)扩展断言逻辑[^2]。例如,在某些情况下可能需要比较集合的内容而不关心顺序差异;此时可借助工具类简化处理流程。 #### 实际应用案例 假设我们有一个简单的加法函数如下所示: ```java public class MathUtils { public static int add(int a, int b) { return a + b; } } ``` 为了确保该方法行为正常,我们可以编相应的单元测试代码片段如下: ```java import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.*; class MathUtilsTest { @Test void testAdd() { int sum = MathUtils.add(3, 4); assertEquals(7, sum); try { MathUtils.add(Integer.MAX_VALUE, 1); } catch (ArithmeticException e) { fail("Should not throw exception for valid inputs"); } Exception exception = assertThrows(ArithmeticException.class, () -> { MathUtils.add(-10, Integer.MIN_VALUE); }); assertEquals("Overflow occurred", exception.getMessage()); } } ``` 以上展示了如何运用不同种类的断言覆盖各种边界情况下的输入输出校验过程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值