我正在使用recaptcha,我需要模拟verify_captcha方法。这个方法被recaptcha gem包含在控制器中:
ActiveSupport.on_load(:action_controller) do
include Recaptcha::Adapters::ControllerMethods
end
如何模拟verify_captcha方法(即Recaptcha::Adapters::ControllerMethods中的方法)?
我正在使用:
allow_any_instance_of(ApplicationController).to receive(:verify_recaptcha).and_return(true)
但是rubocop说这不是最好的方法。
1条答案
按热度按时间jum4pzuy1#
Rubocop不喜欢
allow_any_instance_of
,坦率地说,RSpec也不喜欢。但是,清除ApplicationController可能有点棘手。
你应该可以使用
spy
。更好的是,不要测试其他人的代码,只测试你自己的代码。gem有自己的代码覆盖率,您对它的信任足以将其放入项目中。
您需要测试的只是
ActionController
是否包含Recaptcha::Adapters::ControllerMethods
,以确认您已经完成了工作。