Rails 包更新后功能测试失败

Rails Feature tests fails after bundle update

捆绑更新后,我使用 js: true 的测试失败,因为 Capybara 或 Poltergeist returns 链接的绝对路径而不是相对路径。

示例:

expect(edit_link[:href]).to eq(edit_agreement_path agreement)

失败信息:

expected: "/agreements/1/edit"
got: "http://127.0.0.1:55714/agreements/1/edit"

在失败的快照中,我可以看到我的链接仍然是预期的相对链接。

知道更改了什么以及如何解决这个问题吗?不太喜欢通过我的所有测试来解决此问题的想法。

对于标准的非 js 测试,所有工作都按预期进行 - 获得了链接的相对路径。

对不起我的英语。

Poltergeist 已更新为与 selenium 相同的行为(在大多数情况下更喜欢元素 属性 而不是属性)。您需要还原或更新您的测试。更好的解决方案是在首先找到 link

时实际指定 href
expect(page).to have_link('edit', href: edit_agreement_path(agreement))

edit_link = page.find(:link, 'edit', href: edit_agreement_path(agreement))

如果你关心 href 的值,虽然 href 的实际值确实不是集成测试需要担心的事情。他们应该更多关于,如果我点击它,我最终会进入一个能够编辑项目的页面