如何用rabbitmq在python中编写单元/集成测试?

时间:2012-09-17 05:39:23

标签: unit-testing testing integration-testing rabbitmq automated-tests

我有一个使用rabbitmq编写的python项目,我想知道我应该如何为它编写单元测试/什么是最佳实践。

由于代码需要在后台运行rabbitmq服务器,因此这些是我提出的三个选项:

  1. 编写一些检查程序,检查测试套件的开始是否正在运行,如果不运行则会失败 - 不理想,因为它需要手动启动rabbitmq
  2. 在每个测试setUp上自动启动带有rabbitmq的进程并在tearDown上将其终止 - 由于某种原因,这会产生连接错误
  3. 模拟兔子 - 有没有人对此有任何建议或提示?
  4. 谢谢!

    乔恩

1 个答案:

答案 0 :(得分:1)

Defenitly我更喜欢将rabbitmq从单元测试中移除。

我正在编写一个假的上层类来避免Rabbit mq依赖项,它给了我几个接口来调用发布者方法或调用一个接收器检查器方法。

class FakePublisher(Publisher)
    def __init__(self):
        pass
    def call_consumer(self, msg):
        self.consumer(msg)

class test(unittest.TestCase):
    def test_foo(self):
        publisher = FakePublisher()
        ret = publisher.call_consumer(msg("foo"))
        self.assertEqual(ret, True)