我正在关注 Michael Hartl 的Rails 教程 Ch.8 练习 2,该教程要求通过定义 RSpec 自定义匹配器将测试与实现分离。
我的定义之一是
RSpec::Matchers.define :have_error_message do |message|
match do |page|
page.should have_selector('div.alert.alert-error', text: message)
end
end
所以我可以在 RSpec 中编写以下测试
it { should have_error_message('Invalid') }
但是,在没有如下参数的情况下调用 have_error_message 也可以。
it { should_not have_error_message }
为什么这不会给出错误(缺少参数)?自定义匹配器中的消息变量取什么值?