我正在使用Pusher实现类似Facebook的通知功能。我设置了一个简单的RSpec测试来测试Pusher是否被触发。
scenario "new comment should notify post creator" do
sign_in_as(user)
visit user_path(poster)
fill_in "comment_content", :with => "Great Post!"
click_button "Submit"
client = double
Pusher.stub(:[]).with("User-1").and_return(client)
client.should_receive(:trigger)
end
这个测试通过了。但是如果我使用完全相同的代码再做一个测试(两次测试都测试同一件事),第二个测试就不能通过。无论我把第二个测试放在同一个文件中还是不同的文件中都没有关系。实质上,我只能测试Pusher一次。
第二个测试出现的错误是...
Failure/Error: client.should_receive(:trigger)
(Double).trigger(any args)
expected: 1 time with any arguments
received: 0 times with any arguments