twentytwo-labs/behat-amqp

此包已被废弃,不再维护。未建议替代包。

Behat Amqp Context 用于测试 AMQP 消息,基于 Swarrot 库和 PECL AMQP php 扩展。

1.0.1 2022-10-30 12:30 UTC

This package is auto-updated.

Last update: 2023-12-05 08:44:44 UTC


README

此项目是用于 Behat 的扩展,允许您测试 AMQP 消息。

它基于 Swarrot 库和 PECL AMQP php 扩展。

设置

只需将

  • AmqpContext 添加到您的 behat.yml 配置文件中
default:
    suites:
        your_suite:
            ...
            contexts:
                - ...
                - 'TwentytwoLabs\BehatAmqpExtension\Context\AmqpContext'
    
  • BehatAmqpExtension 添加到您的 behat.yml 配置文件中
default:
   extension:
    ...
    TwentytwoLabs\BehatAmqpExtension: ~

默认情况下,BehatAmqpExtension 使用默认的 RabbitMQ 连接

host: localhost
port: 5672
vhost: /
login: guest
password: guest

但您可以在添加 AmqpContext 到 behat.yml 文件时用您自己的值覆盖此配置

default:
   extension:
    ...
    TwentytwoLabs\BehatAmqpExtension:
        host: your_custom_host
        port: 5672
        vhost: /
        login: your_custom_login
        password: your_custom_password

如何使用

在您的 Behat 测试场景中,您可以使用以下步骤来测试您的 AMQP 消息

  • 然后我设置消息属性:(使用 YAML 描述的 Gherkin PyStringNode 属性)
  • 然后我设置消息正文:(正文作为 Gherkin PyStringNode)
  • 然后我使用路由键 :routingKey 发布消息(这将发布一个包含先前设置的属性和/或正文的消息到 RabbitMQ)
  • 然后我清除队列 :queue_name(将清除该队列中的所有消息)
  • 给定我在 amqp :transport 队列中有 :count 条消息
  • 给定我在 amqp :transport 队列中有消息
  • 给定我等待 :sleep 秒
  • 然后我从队列 :queue_name 中消费一条消息
  • 然后消息应具有属性 :property 等于 :value
  • 然后消息应具有头 :header 等于 :value
  • 然后消息正文应包含 :body
  • 然后消息正文应等于 :body
  • 然后消息正文应匹配到 :body
  • 然后消息正文应具有 JSON 节点 :node 等于 :value
  • 然后打印消息正文(在控制台显示您的消息内容)
  • 然后打印消息属性(在控制台显示消息属性)

有关完整功能的示例,请参阅我们的 Behat 功能文件:features/context.feature

许可证

MIT