Spring,Rabbitmq,mysql集成测试的最佳方法

时间:2013-07-30 09:35:56

标签: spring

我想最好地为spring,RabbitMQ和mysql进行集成测试,同时删除对Mysql和RabbitMQ的任何外部依赖。我尝试过使用:  1.模拟测试,但它不是理想的集成测试  2.我可以使用INMD,但它不是Mysql的实际复制

请帮助我!!

THX, Prikshit

1 个答案:

答案 0 :(得分:2)

理想的情况是,通过H2内存数据库替换MySql:如果使用Spring,则可以更改测试配置以引用H2内存。

对于rabbitMq,我的建议是使用真正的RabbiMQ:这可以通过使用Vagrant和chef来配置RabbitMq和Vagrant maven插件来在Integration测试之前启动Box并在集成测试的后期停止它:

Vagrant Maven插件: http://nicoulaj.github.io/vagrant-maven-plugin/

Vagrant WebSite: http://www.vagrantup.com/

RabbitMQ的食谱师: https://github.com/opscode-cookbooks/rabbitmq

总结一下你必须:

  1. 安装Vagrant并创建一个空Box(Centos或Ubunutu)。
  2. 使用rabbitMQ cookbook配置VM。
  3. 将.box放入您的主文件夹(rabbitMQ.box)。
  4. 配置maven Project以在集成测试的前期阶段启动带有vagrant up(〜/ rabbitMQ.box)的VM。
  5. 在集成测试的前期阶段,将maven Project配置为使用vagrant halt(〜/ rabbitMQ.box)停止VM。
  6. 希望这个帮助