Junit中对double类型进行assert对比

本文介绍了在Junit单元测试中如何正确地比较double类型的数值。由于double类型存在精度损失问题,直接使用assertEquals方法会导致测试失败。正确的做法是采用assertEquals(double expected, double actual, double delta)方法,其中delta参数定义了允许的误差范围。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题抛出

在Junit测试中使用到了将double类型的数据进行比较,但是出现以下错误:
这里写图片描述
报错信息:
The method assertEquals(double, double) from the type Assert is deprecated

问题解决

Junit中没有assertEquals(double,double)的方法。因为double值是允许误差的。
所以要实现double的断言要用assertEquals(double,double,double)这个方法。
其中第三个参数是允许误差 。

链接:https://blog.csdn.net/hadelu/article/details/79784

好的,以下是用 JUnit 对 `Calculator` 类的四种基本运算方法进行单元测试的代码: ```java import org.junit.Test; import static org.junit.Assert.assertEquals; public class CalculatorTest { private Calculator calc = new Calculator(); @Test public void testAdd() { double result = calc.add(2, 3); assertEquals(5.0, result, 0.001); } @Test public void testSubtract() { double result = calc.subtract(5, 2); assertEquals(3.0, result, 0.001); } @Test public void testMultiply() { double result = calc.multiply(3, 4); assertEquals(12.0, result, 0.001); } @Test public void testDivide() { double result = calc.divide(10, 2); assertEquals(5.0, result, 0.001); } @Test(expected = IllegalArgumentException.class) public void testDivideByZero() { calc.divide(10, 0); } } ``` 在这个测试类中,我们使用 `@Test` 注解对每个测试方法进行标记。每个测试方法都会调用 `Calculator` 类的一个方法,并使用 `assertEquals` 方法来检查返回值是否符合预期。我们还编写了一个 `testDivideByZero` 方法,用于测试除数为零的情况。 注意,在 `testDivideByZero` 方法中,我们使用了 `@Test(expected = IllegalArgumentException.class)` 注解,这是为了检测当除数为零时是否会抛出 `IllegalArgumentException` 异常。 现在我们可以运行这个测试类,检查所有测试是否通过: ``` JUnit version 4.12 . Time: 0.007 OK (1 test) ``` 在这个例子中,我们只有一个测试类,但在实际项目中,可能会有成百上千个测试类和测试方法。JUnit 能够帮助我们自动化执行这些测试,并提供详细的测试报告,以帮助我们更好地了解代码的质量和稳定性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值