如何在单元测试中伪造reCAPTCHA? [英] How do I fake a recaptcha in a unit test?

查看:0
本文介绍了如何在单元测试中伪造reCAPTCHA?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用的是rails 5,有一个带有Google reCAPTCHA的表单。为此,我使用了rails gem

gem "recaptcha", require: "recaptcha/rails"

所以我有一个简单的表单,

<%= form_for @comment, :html => {:class => "commentsForm"} do |f| %>
  <div class="field">
    <%= f.label :description, 'Your Comments' %><br>
    <%= f.text_area :description %>
  </div>
  <%= recaptcha_tags %>
  <div class="actions">
    <%= submit_tag 'Submit', :class => 'btn-feedback' %>
  </div>
<% end %>

和我的控制器处理此问题的是

  def create
    @comment = Comment.new(params[:comment].permit(:description))
    @comment.user = current_user
    if verify_recaptcha(model: @comment)

但是如何编写单元测试来测试控制器方法呢?我不知道如何"伪造"重新验证码的提交。这是我的全部

  test "do submit comment" do
    post comments_url, params: { comment: { description: "Some comments"} }

    # Verify we got the proper response
    assert_response :success
  end

但这失败了。如何在单元测试中伪造reCAPTCHA?

推荐答案

仅适用于V2:

使用以下测试密钥,您将始终获得No CAPTCHA,并且所有验证请求都将通过。

站点密钥:6LeIxAcTAAAAJcZVRqyHh71UMIEGNQ_MXjiZKhI

密钥:6LeIxAcTAAAAAGG-vFI1TnRWxMZNFuojJ4WifJWe

来源:Google reCAPTCHA FAQs Page

这篇关于如何在单元测试中伪造reCAPTCHA?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆