我正在使用 recaptcha gem,我需要在测试规范中涵盖替代方案(当验证码无效时)
这是 gem 在控制器中建议的代码
def check_captcha
return if verify_recaptcha
self.resource = resource_class.new sign_in_params
respond_with_navigational(resource) do
flash.discard(:recaptcha_error)
render :new
end
end
规范成功涵盖的成功流程(因为在测试中跳过了 recaptcha 环境)。 但是我无法测试的替代流程
我正在使用这个模拟将
verify_recaptcha
的值更改为 false:
allow_any_instance_of(ApplicationController).to receive(:verify_recaptcha).and_return(false)
但是
respond_with_navigational
不起作用,因为未填充用户模型上的错误对象。
我该如何解决这个问题? 我正在使用 simplecov,它会提醒我这个没有被任何测试覆盖的替代流程