我有一个调用current_user.eligible_for_reward的辅助方法?我希望在Capybara验收规范中存根。在我的模型中,我有一个占位符虚拟方法:
User.rb
def eligible_for_reward?
"blah"
end
这是我到目前为止所尝试的内容:
我尝试了对current_user进行存根,但这会导致“修改冻结对象”错误,因为控制器为零。我相信只有在我使用RSpec的get而不是访问some_path时才会设置控制器。我需要坚持访问some_path,我相信,否则我的page.should ...都会失败,因为页面没有设置。
我尝试以用户身份登录(login_as(用户)成功运行注册/登录)然后将user.eligible_for_reward?存根,但这似乎不起作用,因为我还在回来测试“blah”
有没有一种方法可以找到这种方法?
答案 0 :(得分:7)
验收规格存在不是一个好主意。如果没有其他办法,那么你可以这样做:
User.any_instance.stub!(:eligible_for_reward?).and_return(true)
请记住,接受规范中的存根/嘲弄意味着你真的不测试任何东西。