2016-01-29 4 views
-1

У меня есть этот калькулятор .java из онлайн-практики, и мне нужно протестировать его в JUnit в Eclipse;Тестирование калькулятора в JUnit 4 в Eclipse

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 (дважды) в типа калькулятора не применяется для аргументов (двойной, двойной)

или

Невозможно сделать статическую ссылку на нестационарный метод добавить (двойной) из типа Калькулятор

Любые предложения?

ответ

0

Пример испытания

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); 

Я знаю, что с помощью метода добавления экземпляра будет добавить параметр к аккумулятору. Поэтому я называю метод добавления.

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()); 
+0

Отлично! Хотя assertEquals (String, double, double) устарел, для него требуется номер epsilon/buffer – Binngo

+0

@Binngo. Об этом говорилось в stackoverthread. http://stackoverflow.com/questions/5686755/meaning-of-epsilon-argument-of-assertequals-for-double-values – Ophitect

Смежные вопросы