使用 rspec 测试验证码

Test recaptcha with rspec

提问人:user1439898 提问时间:4/29/2023 最后编辑:Arctodususer1439898 更新时间:4/30/2023 访问量:59

问:

我正在使用 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 环境)。 但是我无法测试替代流程

我正在使用这个模拟将值更改为 false:verify_recaptcha

allow_any_instance_of(ApplicationController).to receive(:verify_recaptcha).and_return(false)

但 不起作用,因为未填充用户模型上的错误对象。respond_with_navigational

我该如何解决这个问题? 我正在使用 simplecov,它提醒我注意任何测试都未涵盖的替代流程

Ruby-on-Rails Ruby-on-Rails-3 rspec

评论

0赞 Arctodus 4/30/2023
您是否在测试环境中启用了 recaptcha?github.com/ambethia/recaptcha#testing

答: 暂无答案