我肯定错过了什么……但是什么!?
在我的规范中,我已经
User.should_receive(:find).with("1").and_return(@user)
在我的控制器中
User.find(params[:id])
绿灯……正确……
但是如果我使用另一种方法更改我的控制器,例如首先:
User.first
甚至
User.all
我也得到了绿灯......我期待一个像这样的错误
expected: 1 time
received: 0 times
谁能给我一个提示来理解这种行为?
非常感谢
编辑
在这里您可以找到有关此问题的更多信息:https ://gist.github.com/3848429#file_user_controller_spec.rb
编辑 2
我现在的规范,但我仍然需要检查方法是否调用每个#find ...
describe "GET #show" do
before(:each) do
@user = mock_model(User)
should_authorize(:show, @user)
end
it "assigns the requested user to @user" do
User.should_receive(:find).with("1").twice.and_return(@user)
get :show, id: "1"
end
it "renders the :show template" do
get :show, id: "1"
response.should render_template :show
end
end