JUnit测试复数。错误我不明白

时间:2016-02-04 23:16:26

标签: java junit complex-numbers

我收到一个我不太明白的错误。我的目标是创建一个简单的程序,添加,减去,乘以和除去复数。我的ComplexNumber类编译正确,但是当我尝试使用我的Tester类的第一个测试用例进行编译时,它给了我这个错误:

(*)

这是我的添加方法

ComplexNumberTest.java:37: error: method add in class ComplexNumber cannot be applied to given types;
    assertEquals(test1.add()==0);
                      ^
  required: ComplexNumber
  found: no argument
  reason: actual and formal arguments differ in length

这是我的Tester课程

import java.lang.ArithmeticException;

public class ComplexNumber{
private float a; //real
private float b; //imaginary

public ComplexNumber(float a,float b)
{
    this.a = a;
    this.b = b;
} //end constructor



public ComplexNumber add(ComplexNumber otherNumber){
    ComplexNumber newComplex;
    float newA = a + otherNumber.getA();
    float newB = b + otherNumber.getB();
    newComplex = new ComplexNumber(newA, newB);
    return newComplex;
}//end add

我觉得解决方案相当简单,而且我已经盯着它看了太久。谢谢你的任何建议。

1 个答案:

答案 0 :(得分:3)

错误说明了一切:

ComplexNumberTest.java:37: error: method add in class ComplexNumber cannot be applied to given types;
    assertEquals(test1.add()==0);
                      ^
  required: ComplexNumber
  found: no argument
  reason: actual and formal arguments differ in length

当你试图使用add()时,它没有发现任何争论。它还说它在论证中需要ComplexNumber

public ComplexNumber add(ComplexNumber otherNumber){
    ComplexNumber newComplex;
    float newA = a + otherNumber.getA();
    float newB = b + otherNumber.getB();
    newComplex = new ComplexNumber(newA, newB);
    return newComplex; }//end add

您定义add要求将另一个ComplexNumber作为参数传递,当您将其用作test1.add()时,您还没有完成。

此外,根据add的方法签名,它将永远不会像你在断言中所假设的那样返回0。