这是一个有效的测试,Rspec告诉我现在错了,因为stub!
已被弃用:
it 'paginates the right number of times' do
mock_thing = mock_model(User)
User.stub!(:page).and_return(mock_thing)
mock_thing.should_receive(:per).with(50)
get :index
end
这样做的正确方法是什么?我尝试了下面的代码,但它失败了:
it 'paginates the right number of times' do
mock_thing = mock_model(User)
mock_thing.should_receive(:per).with(50)
User.stub(:page, mock_thing) do
get :index
end
end
# Error:
# RSpec::Mocks::MockExpectationError: Double "User_1001" received unexpected
# message :[]= with (:expected_from, ...Stacktrace removed
答案 0 :(得分:1)
问题陈述是:
User.stub!(:page).and_return(mock_thing)
需要修补Object
的猴子以支持stub
方法。
您可以显式启用should
语法来绕过弃用警告,但使用新语法表达此方法的方法是:
allow(User).to receive(:page).and_return(mock_thing)
我没有检查你的例子的其余部分是否合理。