3 回答
TA贡献2037条经验 获得超6个赞
您没有使用 Spring 创建的 MyMessageProcessor 实例并在此行上创建自己的实例。
MyMessageProcessor msgProcessor = new MyMessageProcessor();
您应该改为在测试类中自动装配 MyMessageProcessor。
TA贡献1844条经验 获得超8个赞
因为您不允许使用 spring 框架创建 MyMessageProcessor,因为 spring 不会注入您的 ArticleServiceImpl
@Configuration
public class Configuration {
@Bean
public MyMessageProcessor mymessageProcessor() {
return new MyMessageProcessor();
}
}
然后 @Autowire MyMessageProcessor 在您的测试类中
TA贡献1864条经验 获得超2个赞
您帖子中的第一个评论链接提供了完整的答案,但在您的代码中,您有 2 个选择: 1 -MyMessageProcessor msgProcessor自动装配:
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();
}
}
或者,您获取应用程序上下文并手动自动装配 bean,在 @Tom 提供的链接中,您可以看到因此提到的手动 bean 查找。如果你想创建一个新的 bean,那么 applicationContext 也有一个 autowire 方法。
最好的问候,大卫
添加回答
举报