Как решить ошибку «не удается найти символ», генерируемую методом Timeout.seconds () из пакета «org. Junit.rules.Timeout»? - PullRequest
0 голосов
/ 14 марта 2020

наберитесь терпения, я учусь. Я делаю java домашние задания, где я должен реализовать методы и проверить их. Я заявляю, что импортировал пакеты и создал необходимый интерфейс и класс. В этом случае я должен протестировать метод «add», но во время компиляции я получаю эту ошибку. Что это значит? Как я могу это решить?

Error:(15, 47) java: cannot find symbol symbol: method seconds(int) location: class org.junit.rules.Timeout

import org.junit.Before;
import org.junit.Ignore;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.*;


public class StringCalculatorTest {

    @Rule
    public Timeout globalTimeout = Timeout.seconds(2);

    Calculator calculator = null;

    @Before
    public void setUp(){
        calculator = new StringCalculator();
    }

    @Test
    public void calculatorTest() {
        assertThat(calculator.add("")).isEqualTo(0);
        assertThat(calculator.add("1,3")).isEqualTo(4);
    }

Это класс StringCalculator.

public class StringCalculator implements Calculator {
    public int add(String expression){
        return 0;
    }

}

А это интерфейс калькулятора.

public interface Calculator{
    int add(String expression);
}

Ответы [ 2 ]

0 голосов
/ 14 марта 2020

Ваш код должен выглядеть примерно так:

Timeout timeout = new Timeout (int milisecunds);

0 голосов
/ 14 марта 2020

Я не понимаю роль тайм-аута в вашем примере. Может быть, просто удалите его?

Сам тест отлично работает для меня, если я слегка изменю утверждения:

    assertEquals(calculator.add(""), 0);
    assertEquals(calculator.add("1,3"), 4);

Второй сбой, как и ожидалось, так как реализация калькулятора не завершена .

...