用 rspec 测试 recaptcha

问题描述 投票:0回答:0

我正在使用 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,它会提醒我这个没有被任何测试覆盖的替代流程

ruby ruby-on-rails-3 rspec
© www.soinside.com 2019 - 2024. All rights reserved.