首页 > 解决方案 > 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;
    }

}

标签: javatestingassertion

解决方案


你有两个问题:

  • 错误的实际值

  • 浮点情况下的错误双重比较

     Calculator calculator = new Calculator();
     double value = calculator.calculate(5,2,'-'); // use result from calculation
     Assert.assertTrue(Math.abs(3 - value) <= 0.000001); 
    

推荐阅读