Shoulda Matchers has been around for a long time. Unfortunately, it’s starting to suffer from feature bloat so we’re narrowing its focus to keep releases fast and the maintenance burden low.
Removing Deprecated Matchers
The following matchers were deprecated in 1.5 and will be removed in 2.0 . If you’re currently using these methods you should consider testing the code in another way.
assign_to matcher allows you to ensure you have set an instance variable properly. We do not use this because we typically cover those types of assertions implicitly through an integration test. An integration test may be slower than a unit test, but it provides more thorough coverage.
validate_format_of matcher allows you to perform the same operation as the
allow_value matcher. Please use the
allow_value matcher instead.
should validate_format_of(:email).with('email@example.com') should allow_value('firstname.lastname@example.org').for(:email )
We recommend email-spec for testing emails in your apps. It has the added benefit of working with your integration suite as well as your unit tests.
respond_with_content_type matcher is not a matcher we use often. This behavior can be tested using the response object in your controller tests without the need for a matcher.
We do not have a recommended solution for a replacement on this matcher.
Matchers Removed Temporarily
delegate matchers will also be removed in 2.0. We ran into some trouble implementing them but hope to re-implement them in a less troublesome way soon.
As part of the move to 2.0, we will also be dropping support for Rails 2 & ruby 1.8. We will continue to support Rails 3.x and ruby 1.9.x and will be adding support for ruby 2.0 soon.
Keeping it tight
We are trying to keep Shoulda Matchers a tight focused gem and make sure the matchers we do support are as robust and thorough as possible. Do you think there are any other matchers we should remove?