我使用的是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)
但是如何编写单元测试来测试控制器方法?我不知道如何&#34;假的&#34; recaptcha提交。这就是我的全部
test "do submit comment" do
post comments_url, params: { comment: { description: "Some comments"} }
# Verify we got the proper response
assert_response :success
end
但这失败了。如何在单元测试中伪造一个recaptcha?
答案 0 :(得分:5)
仅适用于V2:
使用以下测试密钥,您将始终获得No CAPTCHA,并且所有验证请求都将通过。
站点密钥: 6LeIxAcTAAAAAJcZVRqyHh71UMIEGNQ_MXjiZKhI
秘密密钥::6LeIxAcTAAAAAGG-vFI1TnRWxMZNFuojJ4WifJWe
答案 1 :(得分:0)
不确定“假冒”的含义。如果要获得低分(即较高的机械手概率)的验证返回,则可以在测试例程中欺骗用户代理。
在SO上查看此答案:Is it possible to force fail a recaptcha v2 for testing purposes? (I.e. pretend to be a robot)