AWS Developer Tools Blog
Using RSpec 3
Using RSpec 3
I have been a long time user of RSpec and many of the Ruby projects I work with use RSpec as the primary testing framework. It provides an expressive specification DSL. As you may know, RSpec 3 is currently in the works. I have blogged a few times recently about using MiniTest. I decided I should also give RSpec some love.
RSpec 3 Changes
You can find an excellent summary of the changes and planned changes for RSpec 3 over here. Some of the primary changes:
- No support for Ruby 1.8.6. You should strongly consider upgrading any projects using Ruby 1.8 to 2.0+.
- Less magic by default, and RSpec 3 now provides a zero monkey patching mode.
Upgrading to RSpec 3 required very few changes for me. The primary difference is how I assert expectations. I now use the new expect
helpers:
# using should helpers obj_under_test.attribute.should eq('some-value') lambda { obj_under_test.something_invalid }.should raise_error(...) # using expect expect(obj_under_test.attribute).to eq('some-value') expect { obj_under_test.something_invalid }.to raise_error(...)
Using RSpec 3 Now
To try out the pre-release version of RSpec 3, get started by adding the following to your project’s Gemfile:
gem 'rspec', github: 'rspec/rspec' gem 'rspec-core', github: 'rspec/rspec-core' gem 'rspec-mocks', github: 'rspec/rspec-mocks' gem 'rspec-expectations', github: 'rspec/rspec-expectations' gem 'rspec-support', github: 'rspec/rspec-support'
I have been using RSpec 3 for a few months now and have found it to be very stable and enjoyable to work with. Happy Testing!