捆绑更新后,js: true
的测试失败,因为Capybara或Poltergeist返回链接的绝对路径而不是相对路径。
示例:
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测试,所有工作都按预期工作 - 获得链接的相对路径。
抱歉我的英文。
答案 0 :(得分:0)
更新了Poltergeist,其行为与selenium相同(在大多数情况下,首选属性属性超过属性)。您需要还原或更新测试。更好的解决方案是在第一个位置找到链接时实际指定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的实际值确实不是集成测试需要担心的事情。他们应该更多的是,如果我点击它,我最终会在一个能够编辑项目
的页面上