JUnit测试失败原因咨询:复数类Complex的add方法问题
你的JUnit测试失败原因分析
嘿,我一眼就看到了你代码里的几个拼写/大小写错误,这些应该就是导致测试失败的核心问题啦:
变量名大小写不匹配
Java是严格区分大小写的语言:- 你在构造方法里把虚部值存在了成员变量
imagine(小写i),但在add方法里却写成了Imagine(大写I),这会直接导致找不到该变量的编译错误; - 同理,访问另一个复数对象的虚部时,
other.Imagine也是错误的,应该是other.imagine。
- 你在构造方法里把虚部值存在了成员变量
局部变量名拼写错误
你在add方法里定义了局部变量temporaryImagine,但返回新Complex对象时却写成了tempImagine——少了个or,编译器根本找不到这个变量,自然会报错。
修正后的代码示例
public class Complex { private double real; private double imagine; // 构造方法:注意参数名imaginary和成员变量imagine的对应 public Complex(double real, double imaginary) { this.real = real; this.imagine = imaginary; } // 修正后的add方法 public Complex add(Complex other) { double temporaryReal = real + other.real; double temporaryImagine = imagine + other.imagine; return new Complex(temporaryReal, temporaryImagine); } }
这些基础的拼写错误会导致编译失败,或者运行时抛出NoSuchFieldError之类的异常,直接让你的JUnit测试无法正常执行。修正这些问题后,再重新运行测试应该就能正常工作啦!
内容的提问来源于stack exchange,提问作者Joshua
相关产品推荐
相关产品推荐

