出于测试原因,我最近移动了一些 RSpec 匹配器以使用类形式而不是 DSL。当它们采用这种形式时,有没有办法轻松获得链接行为。
例如
class BeInZone
def initialize(expected)
@expected = expected
end
def matches?(target)
@target = target
@target.current_zone.eql?(Zone.new(@expected))
end
def failure_message
"expected #{@target.inspect} to be in Zone #{@expected}"
end
def negative_failure_message
"expected #{@target.inspect} not to be in Zone #{@expected}"
end
# chain methods here
end
非常感谢