我有这样的代码,但我不确定如何测试我从项目中提取的这段代码。我正在使用 Spring3 和 ActiveMQ。我正在使用 spring 来执行远程 HTTPInvoker,这就是我拥有 GateWay 的原因。所以,当我调用我的方法submit
时Gateway
,它会通过 JMSDispatcher 发送一条 JMS 消息。JmsTemplate
你将如何注入Gateway
?据我所知,如果我想测试 JMS,我必须在 Spring 的 application-context.xml 中配置它并注入覆盖的 JmsTemplate。那么,我可以测试队列中的消息吗?但我不能注入JmsTemplate
,Gateway
因为 Mockito 会抱怨里面没有那个字段Gateway
。
public class Gateway {
@Autowired
private ProcessController processController;
public void submit() {
processControllerFactory.submit();
}
}
public ProcessController {
@Autowired
private JMSDispatcher jmsDispatcher;
public void submit() {
// do something
jmsDispatcher.send(message);
}
}
public JMSDispatcher {
@Autowired
@Qualifier("someJmsTemplate")
private JmsTemplate jmsTemplate;
public void send(MessageCreator message) {
jmsTemplate.send(message);
}
}