3 回答

TA貢獻(xiàn)2037條經(jīng)驗(yàn) 獲得超6個(gè)贊
您沒有使用 Spring 創(chuàng)建的 MyMessageProcessor 實(shí)例并在此行上創(chuàng)建自己的實(shí)例。
MyMessageProcessor msgProcessor = new MyMessageProcessor();
您應(yīng)該改為在測(cè)試類中自動(dòng)裝配 MyMessageProcessor。

TA貢獻(xiàn)1844條經(jīng)驗(yàn) 獲得超8個(gè)贊
因?yàn)槟辉试S使用 spring 框架創(chuàng)建 MyMessageProcessor,因?yàn)?spring 不會(huì)注入您的 ArticleServiceImpl
@Configuration
public class Configuration {
@Bean
public MyMessageProcessor mymessageProcessor() {
return new MyMessageProcessor();
}
}
然后 @Autowire MyMessageProcessor 在您的測(cè)試類中

TA貢獻(xiàn)1864條經(jīng)驗(yàn) 獲得超2個(gè)贊
您帖子中的第一個(gè)評(píng)論鏈接提供了完整的答案,但在您的代碼中,您有 2 個(gè)選擇: 1 -MyMessageProcessor msgProcessor自動(dòng)裝配:
package message.processor;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = Config.class)
public class MyMessageProcessorIT {
@Autowired
private ElasticsearchTemplate elasticsearchTemplate;
@Autowired
private MyMessageProcessor msgProcessor;
...
@Test
void testProcessMessage() {
msgProcessor.processMessage();
}
}
或者,您獲取應(yīng)用程序上下文并手動(dòng)自動(dòng)裝配 bean,在 @Tom 提供的鏈接中,您可以看到因此提到的手動(dòng) bean 查找。如果你想創(chuàng)建一個(gè)新的 bean,那么 applicationContext 也有一個(gè) autowire 方法。
最好的問候,大衛(wèi)
添加回答
舉報(bào)