我的JUnit测试失败了

时间:2018-04-20 03:14:45

标签: java junit

为什么这会导致JUnit测试失败。我有一个名为Complex for Complex Numbers的类,构造函数接受2个真实和虚构的参数,看起来像这样

Public Complex(double real, double imaginary) {
    this.real=real;
    this.imagine=imagine;
}

然后我有一个添加方法,称为像这样的添加

Public Complex add (Complex other) {
    double temporaryReal = real + other.real;
    double temporaryImagine = Imagine + other.Imagine;
    return new Complex(temporaryReal, tempImagine);
}

我设置了一个测试类来测试该方法。看起来像这样

public void testAdd() {
    Complex other = new Complex(15, 30);
    Complex newComplex = new Complex(15, 30);

    assertTrue( myComplex.add(other) == newComplex );
}

如果我输入正确的参数,JUnit测试应该通过。我哪里错了?

1 个答案:

答案 0 :(得分:2)

myComplex.add(other)返回一个对象引用。 newComplex也是一个对象引用,它引用另一个对象。所以当你说myComplex.add(other) == newComplex时,你试图检查这两个引用是否相同,而不是。

如果要比较两个对象,则需要覆盖基类equals()中的hashCode()Object方法。请参阅this question以了解如何执行此操作。