This gem makes it really easy to define your own RSpec custom matchers in 1 line of code.
This class / project is created by xdotcommer and updated by remi to make it an easy-to-install RubyGem.
sudo gem install rspec-custom-matchers -s http://gems.github.com
Wherever you want to include the matcher
method, include CustomMatcher::Helper
Remember, if you want to be able to call matcher(:foo)
in the body of a class,
you might want to extend CustomMatcher::Helper
instead of including it.
Personally, I like to keep all of my own custom matchers for a project in a module, so I do ...
require 'rspec-custom-matchers'
module MyMatchers
extend CustomMatcher::Helper
matcher(:be_divisible_by) { |number, divisor| number % divisor == 0 }
matcher(:be_even) { |even| even % 2 == 0 }
matcher(:be_odd) { |odd| odd % 2 != 0 }
matcher(:be_equal_to)
end
and then, in my spec_helper.rb
require 'my_matchers'
Spec::Runner.configure do |config|
config.include MyMatchers # this will make the matchers available to your specs
end
That's how I do it!
- should support
matcher(:x){}
as well as merb'sSpec::Matcher.create
, which has more features and can be found atmerb-core/lib/merb-core/test/test_ext/rspec.rb