When You Need a Rabbit, Spec It

February 7, 2014

[agile] [devops] [testing]

On my current project, we're using RabbitMQ. It's a bit of infrastructure that has to be present, and if it isn't, our integration tests will fail with mysterious error messages. We want our tests to be informative, so let's write a test that asserts that we have the requisite infrastructure in place.

require "bunny"
require "bunny/exceptions"

describe "RabbitMQ" do
  it "is running" do
    rabbitmq_is_available.should be_true
  end

  def rabbitmq_is_available
    begin
      Bunny.new("... amqp configuration uri ...")
      true
    rescue Bunny::TCPConnectionFailed
      false
    end
  end
end

Run this test and you will know whether the underlying RabbitMQ infrastructure is running.

When You Need a Rabbit, Spec It - February 7, 2014 - Ken Mayer