Eri*_* M. 2 testing rspec capybara ruby-on-rails-3
我有一个调用current_user.eligible_for_reward的辅助方法?我希望在Capybara验收规范中存根.在我的模型中,我有一个占位符虚拟方法:
User.rb
def eligible_for_reward?
"blah"
end
Run Code Online (Sandbox Code Playgroud)
这是我到目前为止所尝试的:
我试过stubing current_user,但这会导致"修改冻结对象"错误,因为控制器是零.我相信只有在我使用RSpec的get而不是访问some_path时才会设置控制器.我需要坚持访问some_path,我相信,否则我的page.should ...都会失败,因为页面没有设置.
我尝试以用户身份登录(login_as(用户)成功运行注册/登录)然后将user.eligible_for_reward?存根,但这似乎不起作用,因为我仍然回到测试"blah"
是否有一种很好的方法来隐藏这种方法?
接受规格的确定不是一个好主意.如果没有其他办法,那么你可以这样做:
User.any_instance.stub!(:eligible_for_reward?).and_return(true)
Run Code Online (Sandbox Code Playgroud)
请记住,验收规范中的存根/嘲弄意味着你真的不测试任何东西.
| 归档时间: |
|
| 查看次数: |
4400 次 |
| 最近记录: |