我以为我了解隐式主题在 RSpec 中的工作原理,但我不明白。
为什么在以下示例中,具有显式主题的第一个规范通过,但使用隐式主题的第二个规范失败,并出现“未定义的方法 `matches' for #”:
class Example
def matches(str) ; true ; end
end
describe Example do
subject { Example.new }
specify { subject.matches('bar').should be_true }
it { matches('bar').should be_true }
end
(我使用的是 rspec 1.3,但我用 2.10.1 验证了相同的行为。)