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 的实际值确实不是集成测试需要担心的事情。他们应该更多关于,如果我点击它,我最终会进入一个能够编辑项目的页面
捆绑更新后,我使用 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
时实际指定 hrefexpect(page).to have_link('edit', href: edit_agreement_path(agreement))
或
edit_link = page.find(:link, 'edit', href: edit_agreement_path(agreement))
如果你关心 href 的值,虽然 href 的实际值确实不是集成测试需要担心的事情。他们应该更多关于,如果我点击它,我最终会进入一个能够编辑项目的页面