JUnitassertFalse(false)找不到BooleanSupplier

问题描述 投票:0回答:2

我正在尝试使用 JUnit5 测试我正在设计的库。我已经到了需要断言某些内容是错误的地步,但是每当我尝试使用

assertFalse(...)
时,Gradle 都会遇到错误。

我正在将 JUnit 5.2 与 Gradle 5.1.1 一起使用,并尝试了适合我的需求的 assertFalse() 方法签名,但没有成功。这包括仅使用布尔条件、使用条件加消息、使用

Assertions.assertFalse(...)
删除静态导入等。

我已经能够将代码范围缩小到一个简单的测试。下面的代码失败了:

@Test
void test(){
    assertFalse(false);
}

我的进口是:

import org.junit.jupiter.api.Test;

import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertFalse;

//plus some others from the library

Gradle 给出错误:

ProjectDir/FTC_Robot_API/TeamCode
/src/test/java/org/firstinspires/ftc/teamcode/FTC_Library/Robot
/RobotBaseTest.java:28: error: cannot access BooleanSupplier
        assertFalse(false);
        ^
  class file for java.util.function.BooleanSupplier not found
1 error

我希望明显的布尔值(

false
)不是BooleanSupplier,所以我对为什么它给我这个错误感到困惑。任何帮助表示赞赏

java intellij-idea junit
2个回答
1
投票

我在使用 IntelliJ 时遇到了同样的问题。要解决它

  1. 删除 IntelliJ 项目文件(例如
    .iml
    .idea
    文件)
  2. 关闭项目
  3. 从 IntelliJ 欢迎屏幕中选择“导入项目”

enter image description here

  1. 选择“来自现有来源的项目”
  2. 按照提示设置项目。有关更多信息,请参阅 IntelliJ 网站:jetbrains.com/help/idea/import-project-or-module-wizard.html

0
投票

JUnit 5 在运行时需要 Java 8(或更高版本)。在您的情况下,JUnit 使用从 Java 8 开始可用的

java.util.function.BooleanSupplier

我向你推荐:

  1. 告诉 Gradle 使用特定的 java 版本(8 或更高版本)。如果你想使用maven,在pom.xml的属性部分指定java版本
  2. 关闭项目。
  3. 从项目目录中删除
    .iml
    目录和
    build directory
    (maven中的目标目录)。
  4. 从最近的项目中删除该项目。
  5. 打开项目。
  6. idea
    中设置项目的语言级别(文件 -> 项目结构 -> 语言 Lavel)。
© www.soinside.com 2019 - 2024. All rights reserved.