java - IntelliJ 测试失败
问题描述
您好我正在尝试使用测试用例测试我的 Calculator.java 类,但出现此错误:
java.lang.AssertionError: 预期:<3> 但原为:main.Calculator@5bb21b69 预期:3 实际:main.Calculator@5bb21b69
这是我写的测试用例
public class CalculatorTest {
@Test
public void testCalculator(){
Calculator calculator = new Calculator();
calculator.calculate(5,2,'-');
Assert.assertEquals(3,calculator);
}
这是我的计算器课
package main;
public class Calculator {
public Double calculate(double first, double second, char operator) {
double result;
switch (operator) {
case '+':
result = first + second;
break;
case '-':
result = first - second;
break;
case '*':
result = first * second;
break;
case '/':
result = first / second;
break;
// operator doesn't match any case constant (+, -, *, /)
default:
System.out.printf("Error! operator is not correct");
return null;
}
return result;
}
}
解决方案
你有两个问题:
错误的实际值
浮点情况下的错误双重比较
Calculator calculator = new Calculator(); double value = calculator.calculate(5,2,'-'); // use result from calculation Assert.assertTrue(Math.abs(3 - value) <= 0.000001);
推荐阅读
- c# - Blazor 在调用注入的异步服务时挂起,而后者又调用异步服务
- javascript - WebGL2 将 Uint16Array 作为图像渲染到画布
- javascript - 如何在d3中设置x轴的年份范围
- python - Python线程ssh连接会产生干扰吗?
- ios - 在 Swift 5 中配置核心数据持久性
- ruby-on-rails - 以字符串形式引用常量
- python - Python中黑名单和白名单的字符串处理
- pandas - 压缩一行的元素并循环它们
- javascript - 如何解析 JSON 字符串但保持动态键的顺序?
- scala - 获取 Spark MLlib 决策树中每个叶子的默认元素数