Java 在Eclipse中测试JUnit4中的计算器
我有一个在线实践中的calculator.java,我需要在Eclipse的JUnit中测试它Java 在Eclipse中测试JUnit4中的计算器,java,eclipse,syntax,junit,Java,Eclipse,Syntax,Junit,我有一个在线实践中的calculator.java,我需要在Eclipse的JUnit中测试它 package calculator; import java.util.Scanner; public class Calculator { private double accumulator; public Calculator() { } public Calculator(double initialValue) { accumulator = initialV
package calculator;
import java.util.Scanner;
public class Calculator {
private double accumulator;
public Calculator() { }
public Calculator(double initialValue) { accumulator = initialValue; }
public void add(double number) { accumulator += number; }
public void subtract(double number) { accumulator -= number; }
public void multiply(double number) { accumulator *= number; }
public void divide(double number) { accumulator /= number; }
public void sqrt() { accumulator = Math.sqrt(accumulator); }
public void setAccumlator(double accumulator) { this.accumulator = accumulator; }
public double getAccumulator() { return accumulator; }
@Override
public String toString() { return "Result:" + accumulator; }
}
我一直在浏览文档(我对编程基本上是新手),但不确定如何真正做到这一点。我已经设置了JUnit和一个测试文件,比如
@Test
public void testAdd(){
}
@Test
public void testDivideByZero(){
}
等等
我试过一些方法,但语法是错误的,比如
类型计算器中的add(double)方法不适用于参数(double,double)
或
无法从类型计算器对非静态方法add(double)进行静态引用
有什么建议吗?测试示例
private Calculator mCalculatorInstance;
@Before
public void setupTestEnvironment() {
// This method will be call before every single test.
mCalculatorInstance = new Calculator(2.0);
}
@Test
public void testAdd(){
mCalculatorInstance.add(2.0); // add 2 to the initial value of 2 which I instanitiate above should return 4.
assertEquals("Adding 2 to 2 should give me 4.", 4.0, c.getAccumulator());
}
为了进行测试,您需要知道测试的预期输出。让我们使用上面的测试作为场景。我声明我正在初始化一个累加器值为2的计算器对象
mCalculatorInstance = new Calculator(2.0);
我知道使用实例的add方法会将参数添加到累加器中。因此我调用add方法
mCalculatorInstance.add(2.0);
现在我给累加器加上2.0,累加器已经有了2.0的值
2.0 + 2.0 = 4.0
由于该对象提供了一种返回累加器的方法,因此我使用该方法返回累加器并检查加法是否正确,累加器的值应为4.0
assertEquals("Adding 2 to 2 should give me 4.", 4.0, c.getAccumulator());
完美的虽然assertEquals(String、double、double)不推荐使用,但需要epsilon/buffer编号now@Binngo关于这件事,有一个堆积如山的想法。