Skip to content

RabbitMQ#

Steps for interacting with RabbitMQ message broker

Queue Management#

Step Description
"{resource}" declares queue "orders" Declares a queue with default settings
"{resource}" declares durable queue "orders" Declares a durable queue
"{resource}" queue "orders" exists Asserts a queue exists
"{resource}" purges queue "orders" Purges all messages from a queue

Exchange Management#

Step Description
"{resource}" declares exchange "events" of type "topic" Declares an exchange (direct, fanout, topic, headers)
"{resource}" declares durable exchange "events" of type "topic" Declares a durable exchange
"{resource}" exchange "events" exists Asserts an exchange exists

Bindings#

Step Description
"{resource}" binds queue "orders" to exchange "events" Binds a queue to an exchange with empty routing key
"{resource}" binds queue "orders" to exchange "events" with routing key "order.*" Binds a queue to an exchange with a routing key

Publishing#

Step Description
`"{resource}" publishes to queue "orders":
"""
Hello World
"""` Publishes a message directly to a queue
`"{resource}" publishes json to queue "orders":
"""
{"order_id": 123}
"""` Publishes a JSON message directly to a queue
`"{resource}" publishes to exchange "events" with routing key "order.created":
"""
Order created
"""` Publishes a message to an exchange with routing key
`"{resource}" publishes json to exchange "events" with routing key "order.created":
"""
{"event": "order.created"}
"""` Publishes a JSON message to an exchange with routing key
`"{resource}" publishes messages to queue "orders":
message
message 1
message 2 `

Consuming#

Step Description
"{resource}" consumes from queue "orders" Starts consuming messages from a queue
"{resource}" receives from queue "orders" within "5s" Waits for a message from a queue within timeout
`"{resource}" receives from queue "orders" within "5s":
"""
Hello World
"""` Asserts a specific message is received within timeout

Assertions#

Step Description
"{resource}" queue "orders" has "3" messages Asserts queue has exactly N messages consumed
"{resource}" queue "orders" is empty Asserts no messages have been consumed from queue
`"{resource}" last message contains:
"""
order_id
"""` Asserts the last consumed message contains content
"{resource}" last message has routing key "order.created" Asserts the last consumed message has specific routing key
"{resource}" last message has header "content-type" with value "application/json" Asserts the last message has a header with value