Rails功能测试在bundle更新后失败



捆绑包更新后,我的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"

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

有什么变化以及如何解决的想法吗?我真的不喜欢通过我所有的测试来解决这个问题。

对于标准的not js测试,所有工作都如预期-获取链接的相对路径。

对不起我的英语。

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的实际值对于集成测试来说并不需要担心。他们应该更多关于,如果我点击它,我会在一个页面上编辑项目

最新更新