我已经创建了一个简单的单元测试,但是IntelliJ错误地将它突出显示为红色。将其标记为错误

没有豆子?

如你所见,它通过了测试?所以它一定是自动连接的?


当前回答

我通过在IDEA中安装mybatis插件解决了这个问题。当我安装Mybatis插件时,它消失了。

其他回答

看起来您试图在没有实际激活WebEnvironment的情况下运行测试。

解决方案非常简单,只需添加带有必需配置的@SpringBootTest注释。

这里有一个例子:

@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) // Run the server for testing.
public class mockTest {

    @Autowired
    // Should work now
}

你需要做的就是添加

AppConfiguration.java中的@ComponentScan("package/include/your/annotation/component")

因为我认为你的AppConfiguraion.java的包比你的注释组件(@Service, @Component…)的包更深,

比如“package/include/your/annotation/component/deep /config”。

这是另一种“不能自动装配”。No Beans of…”可以通过安装插件来解决,在我的案例中是Spring Batch中的JobBuilderFactory。

至于intelliJ 2021.2.3版(终极版),我把“spring bean组件中不正确的注入点自动装配”改为警告,这对我来说很有用

在bean配置文件中放置@Component或@configuration似乎可以工作,例如:

@Configuration
public class MyApplicationContext {
    @Bean
    public DirectoryScanner scanner() {
        return new WatchServiceDirectoryScanner("/tmp/myDir");
    }
}

@Component
public class MyApplicationContext {
    @Bean
    public DirectoryScanner scanner() {
        return new WatchServiceDirectoryScanner("/tmp/myDir");
    }
}