我想在测试中注入DeMorgenArticleScraper。Spring引导字段注入与autowire不工作在JUnit测试
@RunWith(SpringJUnit4ClassRunner.class)
public class DeMorgenArticleScraperTest {
@Autowired
private DeMorgenArticleScraper deMorgenArticleScraper;
...
}
的DeMorgenArticleScraper组件有一些配置本身怎么回事,但IDE /编译器不会抱怨他们。
@Component
public class DeMorgenArticleScraper extends NewsPaperArticleScraper {
@Autowired
public DeMorgenArticleScraper(
@Qualifier("deMorgenSelectorContainer") SelectorContainer selector,
GenericArticleScraper genericArticleScraper,
@Qualifier("deMorgenCompany") Company company) {
super(selector, genericArticleScraper, company);
}
...
}
用@Qualifier注释的构造函数参数在Config.class中用@Bean定义。该类本身具有@Configuration。我认为问题不在这里。
IDE已经警告我,找不到bean ... autowired成员必须在bean中定义。但据我所知,它是用@Component注解在bean中定义的。所有其他bean接线似乎都可以,因为Spring启动应用程序可以启动(当我注释掉测试类时)。
通过存储在谈到豆所需的相关
@Configuration
的,它应该是‘@InjectMocks’应该在DeMorgenArticleScraperTest去‘@Autowired’,而不是。我不记得在Junittest中有“@Autowired”加注 – drgn我在评论之后使用了测试的类注释,并发现了一些可行的方法。谢谢。 – progonkpa
我建议你用堆栈溢出的解决方案回答你自己的问题!很高兴帮助 – drgn