我如何在 Rails 5 助手规范中模拟 `request.xhr?`?
How would I mock `request.xhr?` in a Rails 5 helper spec?
我正在 rspec 中测试 Rails 5 个助手。我们在帮助程序中有一个块,它包含在条件中:
if request.xhr?
# do stuff
end
在规范中,我无法强制 request.xhr?
测试为 return true。我试过 allow_any_instance_of(ActionController::Request).to receive(:xhr?).and_return(true)
,但上面写着 Undefined Constant ActionController::Request
(这有点道理)。我也试过 allow(request).to receive(:xhr?).and_return(true)
但那只是默默地失败了。
我如何测试它 - #do stuff
代码是否在我们希望的时候执行,并且它是否符合我们的预期?
答案竟然是allow_any_instance_of(ActionDispatch::Request).to receive(:xhr?).and_return(true)
。我错过了 Request 对象已经移出 ActionController 模块并进入 ActionDispatch。
我正在 rspec 中测试 Rails 5 个助手。我们在帮助程序中有一个块,它包含在条件中:
if request.xhr?
# do stuff
end
在规范中,我无法强制 request.xhr?
测试为 return true。我试过 allow_any_instance_of(ActionController::Request).to receive(:xhr?).and_return(true)
,但上面写着 Undefined Constant ActionController::Request
(这有点道理)。我也试过 allow(request).to receive(:xhr?).and_return(true)
但那只是默默地失败了。
我如何测试它 - #do stuff
代码是否在我们希望的时候执行,并且它是否符合我们的预期?
答案竟然是allow_any_instance_of(ActionDispatch::Request).to receive(:xhr?).and_return(true)
。我错过了 Request 对象已经移出 ActionController 模块并进入 ActionDispatch。