我不太清楚为什么,但我的 Sinatra rspec 测试在应该失败的时候没有正确失败。这是我的 Rspec 的一部分:
context "invalid params" do
before do
@params = {}
end
it "does not call the Count model" do
Count.should_not_receive(:increment)
post '/counts' , @params
end
end
虽然它没有失败。但是,如果我将 should_not_receive 行切换为:
Count.should_receive(:increment).exactly(2).times
它响应以下错误:
Failure/Error: Count.should_receive(:increment).exactly(2).times
(<Count (class)>).increment(any args)
expected: 2 times
received: 1 time
那么为什么第一个测试如果被调用一次就不会失败呢?