我想在測試中注入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