【问题标题】:How to solve "cannot find symbol" error, generated by method Timeout.seconds() from "org. junit.rules.Timeout" package?如何解决“org.junit.rules.Timeout”包中的 Timeout.seconds() 方法生成的“找不到符号”错误?
【发布时间】:2020-03-14 12:26:56
【问题描述】:

耐心点,我在学习。 我正在做 java 作业,我必须实现方法并测试它们。 我声明我导入了包并创建了必要的接口和类。 在这种情况下,我必须测试“添加”方法,但是在编译过程中,我得到了这个错误。这是什么意思?我该如何解决?

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

【问题讨论】:

    标签: java intellij-idea junit compiler-errors


    【解决方案1】:

    我不明白超时在您的示例中的作用。也许只是删除它?

    如果我稍微改变断言,测试本身对我来说效果很好:

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

    第二个按预期失败,因为计算器的实现没有完成。

    【讨论】:

      【解决方案2】:

      您的代码应如下所示:

      超时超时 = new Timeout(int milsecunds);

      【讨论】:

        猜你喜欢
        • 2013-01-15
        • 1970-01-01
        • 1970-01-01
        • 2018-08-16
        • 2021-10-09
        • 2018-09-01
        • 2021-03-09
        • 2011-09-14
        • 1970-01-01
        相关资源
        最近更新 更多