Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails rails中的Recaptcha:验证\u Recaptcha在测试中始终返回true_Ruby On Rails_Ruby On Rails 3_Nginx_Proxy_Recaptcha - Fatal编程技术网

Ruby on rails rails中的Recaptcha:验证\u Recaptcha在测试中始终返回true

Ruby on rails rails中的Recaptcha:验证\u Recaptcha在测试中始终返回true,ruby-on-rails,ruby-on-rails-3,nginx,proxy,recaptcha,Ruby On Rails,Ruby On Rails 3,Nginx,Proxy,Recaptcha,我集成在Rails 3.2应用程序中。在我本地的盒子里一切都很好 但当我在测试服务器中部署它时,验证码显示在页面中。但无论我为验证码输入什么值,verify\u recaptcha函数都会为其返回true。所以所有的值都被captcha接受了 在开发系统中它工作,但在测试系统中它不工作,您能告诉我为什么会出现这种行为吗 我知道原因了。我浏览了recaptcha gem的源代码。在这种情况下,verify\u recaptcha函数始终返回true如果环境是test,则可以从recaptcha.c

我集成在Rails 3.2应用程序中。在我本地的盒子里一切都很好

但当我在测试服务器中部署它时,验证码显示在页面中。但无论我为验证码输入什么值,
verify\u recaptcha
函数都会为其返回true。所以所有的值都被captcha接受了


在开发系统中它工作,但在测试系统中它不工作,您能告诉我为什么会出现这种行为吗

我知道原因了。我浏览了recaptcha gem的源代码。在这种情况下,
verify\u recaptcha
函数始终返回
true
如果环境是
test
,则可以从
recaptcha.configuration.中删除条目。跳过\u verify\u env
以强制在测试中使用recaptcha。我看到默认情况下,
test
cucumber
都在该数组中

Recaptcha.configuration.skip_verify_env.delete 'test'

为我工作。

你把这个放在哪里?你可以把它放在不同的地方。我在我的应用程序中引用recaptcha的唯一系统测试类中直接拥有它。如果有多个测试与recaptcha交互,还可以将其放置在测试助手(test_helper.rb、spec_helper.rb、rails_helper.rb等,具体取决于您使用的测试框架)。