所以,如果您有测试班
class FooControllerIT{
@Autowired FooController controller;
}
,然后在类中添加@SpringBootTest
批注,IntelliJ声称
无法自动接线。找不到“ FooController”类型的豆。
这是谎言,因为测试可以顺利通过并通过。
如果我将@SpringBootTest
注释替换为@Component
注释,则“错误”消失(并且当我再次替换@SpringBootTest
注释时再次出现)。
什么原因导致这种行为?
(我在使用Spring Boot 2.1.8-RELEASE的Ultimate 2019.1中)
答案 0 :(得分:0)
无法找到Controller的可能方式是,它与注释为@SpringBootApplication
的主应用程序类不在同一(或更高版本)软件包中。如果您不想移动Controller,则可以创建一个新的配置类,该类将标注为@ComponentScan
@Configuration
@ComponentScan(basePackages = "com.your.controller.package")
public class FooConfig {
}
即使您可以将此配置手动添加到测试spring上下文中,也可以:@SpringBootTest(classes = FooConfig.class)