奇怪的行为。我用initializr做了一个普通的spring boot项目。下面是build.gradle,如您所见,它加载了spring boot starter测试的测试依赖项,其中包括assertj包。
plugins {
id 'org.springframework.boot' version '2.5.4'
id 'io.spring.dependency-management' version '1.0.11.RELEASE'
id 'java'
}
group = 'com.acme'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '11'
configurations {
compileOnly {
extendsFrom annotationProcessor
}
}
repositories {
mavenCentral()
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-webflux'
compileOnly 'org.projectlombok:lombok'
developmentOnly 'org.springframework.boot:spring-boot-devtools'
annotationProcessor 'org.springframework.boot:spring-boot-configuration-processor'
annotationProcessor 'org.projectlombok:lombok'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
testImplementation 'io.projectreactor:reactor-test'
}
test {
useJUnitPlatform()
}但是,这里有我的第一个测试组件
package com.foretold.astrocalc.app.controllers;
import org.assertj.core.api.Assertions.assertThat;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest
public class ChartControllerTest {
@Autowired
private ChartController controller;
@Test
public void contextLoads() throws Exception{
assertThat(controller).isNotNull();
}
}IJ告诉我它不能解析符号assertThat。它在import语句中加载到Assertions,这就是。当我单击Assertions类时,我看到了公共方法assertThat。有没有什么IJ设置搞砸了静态导入?
只导入Assertions并使用带点符号的方法是可行的,但是为什么静态导入不起作用呢?
发布于 2021-09-02 10:44:03
当我们想要用AssertJ编写断言时,我们必须使用静态assertThat方法。这意味着您必须像下面这样导入它:
import static org.assertj.core.api.Assertions.assertThat;https://stackoverflow.com/questions/69021564
复制相似问题