假设表格引用为:
@assign_box = find('.swappy', match: :first)
现在,如果我们计算上面表单中的输入数量,它有一个真实性令牌的输入,但不计入此处,因为测试用例只有7个:
expect(@assign_box).to have_css('input', count: 8)
答案 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实际上可能不会在提交句柄之前添加身份验证令牌。