【问题标题】:Why does new javascript script make Capybara tests fail?为什么新的 javascript 脚本会使 Capybara 测试失败?
【发布时间】:2019-02-14 15:31:03
【问题描述】:

我编写了一个新的 JS 脚本,用于为某些点击事件提交 HTTP 请求。目前正在针对我的 rails 应用程序中的所有页面运行。 (不理想,但我认为它暂时不会引起严重问题。但是,它的存在导致大量水豚测试失败。我不知道为什么。

function onCheckboxClick() {
  const url = $(this).attr("data-action")
  const data = {
    method: "PATCH",
    body: JSON.stringify({ confidential: this.checked }),
    headers: {
      'X-CSRF-Token': Rails.csrfToken(),
      'Content-Type': 'application/json'
    }
  }
  fetch(url, data)
    .then(response => { return response.json() })
    .catch(error => console.log(error))
}

$(document).on('turbolinks:load', () => {
  const checkboxes = document.querySelectorAll("#invoice_confidential")
  checkboxes.forEach((box) => {
    box.addEventListener("click", onCheckboxClick)
  })
})

【问题讨论】:

  • 如果你添加一些测试会很有帮助。还有 rspec 配置文件。

标签: javascript ruby-on-rails rspec capybara


【解决方案1】:

您使用的是 ES6 语法,我不知道您使用什么浏览器进行测试,但这可能是问题所在,可能需要编译为 ES5。

但是您没有提供足够的信息。您使用的是什么 Rails 版本?你在使用 Webpacker 吗?你有 Babel 设置吗?也许你可以分享一些配置的东西。

【讨论】:

  • 你完全正确!通过将所有内容更改为 ES5,所有问题都得到了解决。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-04
  • 1970-01-01
  • 1970-01-01
  • 2017-09-17
  • 1970-01-01
相关资源
最近更新 更多