4

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

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

  1. 编写一些检查器,在测试套件开始时检查 rabbit 是否正在运行,如果没有运行则失败 - 不理想,因为它需要手动启动 rabbitmq
  2. 在每个测试设置上自动使用 rabbitmq 启动一个进程,并在 tearDown 时终止它 - 出于某种原因,这会产生连接错误
  3. 模拟 rabbitmq - 有人对此有任何建议或提示吗?

谢谢!

乔恩

4

1 回答 1

1

毫无疑问,我更喜欢将 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)
于 2012-09-18T10:31:23.517 回答