如何摆脱assertThrows的编译时错误(尽管使用导入)? (Java,Eclipse Oxygen)

时间:2018-01-30 09:22:03

标签: junit5 eclipse-oxygen junit-jupiter

我正在测试以下代码片段,我找到了here

Eclipse Oxygen版本: Oxygen.2版本(4.7.2) - 如果重要

import org.junit.jupiter.api.Assertions;
....
@Test
void exceptionTesting() {
    Executable closureContainingCodeToTest = () -> {throw new IllegalArgumentException("a message");};
    Assertions.assertThrows(IllegalArgumentException.class, closureContainingCodeToTest, "a message");
}

但是,代码没有编译。

我收到以下错误:

  

Assertions类型中的方法assertThrows(Class,Executable,String)不适用于参数(Class,Executable,String)DbHandlerTest.java第96行Java问题

当然,我的目标不仅仅是测试上面的代码片段,而是为我的代码编写测试。请帮忙。

1 个答案:

答案 0 :(得分:2)

我发现了问题...... 感谢somuras提出了正确的问题。 导入错误后

import org.junit.jupiter.api.Executable;

应该是这样的:

import org.junit.jupiter.api.function.Executable;