RSpec custom matcher
簡易
code:spec/support/custom_matcher.rb
RSpec::Matchers.define_negated_matcher :not_change, :change
Matcher DSL
code:ruby
RSpec::Matchers.define :have_plus_one do |expected|
match do |actual|
expected + 1 == actual
end
failure_message do |actual|
end
failure_message_when_negated do |actual|
end
end
it do
expect(2).to have_plus_one(1)
end
Module
code:ruby
module MyMatchers
class HavePlusOne
def initialize(expected)
@expected = expected
end
def matches?(actual)
@expected + 1 == actual
end
def failure_message(actual)
end
end
def have_plus_one(number)
HavePlusOne.new(number)
end
end
RSpec.configure do |config|
config.include MyMatchers
end