假设一个形式引用:现在Rspec的测试失败:没有的形式计数的投入小于实际投入
@assign_box = find('.swappy', match: :first)
,如果再算上上述表单中输入的数量,它有一个输入真实性令牌但作为测试用例只有七个得到此不计:
expect(@assign_box).to have_css('input', count: 8)
假设一个形式引用:现在Rspec的测试失败:没有的形式计数的投入小于实际投入
@assign_box = find('.swappy', match: :first)
,如果再算上上述表单中输入的数量,它有一个输入真实性令牌但作为测试用例只有七个得到此不计:
expect(@assign_box).to have_css('input', count: 8)
我得到了issue.It可能是由于环境configs.I需要设置允许防伪保护,以增加真实性令牌的测试环境。
config.action_controller.allow_forgery_protection = true
默认情况下,水豚只查找/计数可见的元素,因为身份验证令牌通常存储在您需要通过可见的隐藏输入:如果形式都作为一个选项have_css
expect(@assign_box).to have_css('input', visible: :all, count: 8)
另外通过ajax(远程表单)提交,Rails实际上可能不会添加auth令牌直到提交句柄。
我同意了,但我已经在测试用例之前使用过了:每次都做 Capybara.ignore_hidden_elements = false – Jaswinder
@Jaswinder在以后的问题中指出类似的东西是很好的。 希望你还有一个'after:each',因为它是一个全局设置(它不会自动重置) –