Rspec测试失败:表单计数输入数小于实际输入数

时间:2017-06-19 13:51:39

标签: ruby-on-rails rspec capybara

假设表格引用为:

@assign_box = find('.swappy', match: :first)

现在,如果我们计算上面表单中的输入数量,它有一个真实性令牌的输入,但不计入此处,因为测试用例只有7个:

expect(@assign_box).to have_css('input', count: 8)

2 个答案:

答案 0 :(得分:0)

I got the issue.It might be due to environment configs.I need to set allow forgery protection to add authenticity token in test environment.

config.action_controller.allow_forgery_protection = true

答案 1 :(得分:0)

默认情况下,Capybara只查找/计算可见元素,因为auth令牌通常存储在您需要传递的隐藏输入中:: all作为have_css的选项

expect(@assign_box).to have_css('input', visible: :all, count: 8)

此外,如果表单是通过ajax(远程表单)提交的,则Rails实际上可能不会在提交句柄之前添加身份验证令牌。