Java 在Eclipse中测试JUnit4中的计算器

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

我有一个在线实践中的calculator.java,我需要在Eclipse的JUnit中测试它

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关于这件事,有一个堆积如山的想法。