twentytwo-labs / behat-amqp
此包已被废弃,不再维护。未建议替代包。
Behat Amqp Context 用于测试 AMQP 消息,基于 Swarrot 库和 PECL AMQP php 扩展。
1.0.1
2022-10-30 12:30 UTC
Requires
- ext-amqp: *
- ext-json: *
- behat/behat: ^3.4
- swarrot/swarrot: ^2.4 || ^3.0 || ^4.0
- symfony/yaml: ^3.4 || ^4.0 || ^5.0 || ^6.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.4
- phpmd/phpmd: ^2.6
- phpmetrics/phpmetrics: ^2.4
- squizlabs/php_codesniffer: ^3.4
- twentytwo-labs/array-comparator: ^1.0
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