【问题标题】:How to write python test to connect to rabbitmq?如何编写python测试连接到rabbitmq?
【发布时间】:2021-02-13 22:22:32
【问题描述】:

我对python很陌生,我想养成在编码之前编写测试的习惯,但我不知道如何成功编写连接到rabbitmq服务器的测试。这是我使用 Flask 和 pytest 进行的测试

class TestVerifyService(BaseTestCase):    

    def test_connect_queue(self):
        """
        Ensure RabbitMQ server is properly configured
        @return:
        @rtype:
        """
        self.assertTrue(os.environ.get('RABBIT_HOST'))
        self.assertTrue(os.getenv('RABBIT_USER'))
        self.assertTrue(os.getenv("RABBIT_PASS"))

这是我正在测试的函数:

def connect_queue():
    """
    Create a connection to RabbitMQ server
    @return: connection, channel
    """
    rabbit_url = f"amqp://{os.getenv('RABBIT_USER')}:{os.getenv('RABBIT_PASS')}@{os.getenv('RABBIT_HOST')}"
    connection = pika.BlockingConnection(pika.URLParameters(rabbit_url))
    channel = connection.channel()
    return connection, channel

请问我如何确保我的测试正确地测试了上述功能?谢谢。

【问题讨论】:

  • 您的代码示例使用unittest,您想要说明pytestunittest 的答案吗?
  • @gold_cy 我想要一个使用pytest 的插图。谢谢!

标签: python flask rabbitmq pytest


【解决方案1】:

我想出了一个方法来编写正确的测试:

def test_connect_queue(self):
    self.assertTrue(os.environ.get('RABBIT_HOST'))
    self.assertTrue(os.getenv('RABBIT_USER'))
    self.assertTrue(os.getenv("RABBIT_PASS"))
    response = connect_queue()
    self.assertTrue(response)

【讨论】:

  • 如果你正在编写单元测试,你不应该连接到实际的服务,你应该模拟那个功能
  • 你可以在这里广泛阅读 --> docs.python.org/3/library/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-09-09
  • 1970-01-01
  • 2018-01-03
  • 1970-01-01
  • 2022-01-17
  • 1970-01-01
  • 2021-11-30
相关资源
最近更新 更多