我已经创建了一个简单的单元测试,但是IntelliJ错误地将它突出显示为红色。将其标记为错误
没有豆子?
如你所见,它通过了测试?所以它一定是自动连接的?
我已经创建了一个简单的单元测试,但是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");
}
}