我正在使用http://mockrunner.sourceforge.net/中的mockrunner包为JUnit设置一个模拟队列来测试XML过滤器,其运行方式如下:
我正在进行的JUnit测试只需要通过启动本地ftp和模拟队列服务器来连接到过滤器来模拟这个环境,然后等待过滤器连接到队列并将新的xml输入文件放在上面通过本地ftp服务器的本地目录,等待队列消息,然后稍微修改xml输入,将修改后的xml放入新目录,并将另一条消息发送到队列,表示作业已完成。
我在网上找到的所有教程都使用EJB和JNDI来查找队列服务器。如果可能的话,我想通过在我的本地机器上创建一个模拟队列并以最简单的方式连接到它来避开该路由,而不是使用EJB和JNDI。
提前致谢!
答案 0 :(得分:3)
答案 1 :(得分:2)
我建议您使用Apache Camel来创建测试用例。然后很容易从available components中切换你的测试用例,最重要的是Camel附带了一些非常方便的Mock Endpoints,这使得测试复杂的路由逻辑非常容易,尤其是异步操作。
如果你也使用Spring,那么可以先尝试一下这些Spring unit tests with mock endpoints in Camel,它允许你注入模拟端点来与ProducerTemplate对象一起执行断言,以便为你的测试用例发送消息非常容易。例如请参阅该页面上的最后一个示例。
开始使用像SEDA endpoint这样的简单端点 - 然后当您了解核心弹簧/模拟框架时,请尝试使用JMS endpoint或FTP endpoint端点等。< / p>