Ruby on rails 包更新后Rails功能测试失败

Ruby on rails 包更新后Rails功能测试失败,ruby-on-rails,capybara,poltergeist,Ruby On Rails,Capybara,Poltergeist,捆绑包更新后,使用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: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测试,所有工作都按预期进行-获得链接的相对路径


对不起,我说的是英语。

Poltergeist已更新,其行为与selenium相同(在大多数情况下,首选元素属性而非属性)。您需要恢复或更新测试。更好的解决方案是在查找链接时实际指定href

expect(page).to have_link('edit', href: edit_agreement_path(agreement))


如果您关心href的值,尽管href的实际值并不需要集成测试来担心。他们应该更多地关注,如果我点击它,我会在一个能够编辑项目的页面上结束吗?

Poltergeist被更新为与selenium相同的行为(在大多数情况下,更喜欢元素属性而不是属性)。您需要恢复或更新测试。更好的解决方案是在查找链接时实际指定href

expect(page).to have_link('edit', href: edit_agreement_path(agreement))


如果您关心href的值,尽管href的实际值并不需要集成测试来担心。他们应该更多地关注,如果我点击它,我是否会在一个页面上编辑该项目

“任何想法有什么改变”-gem changed。我会看看这两个版本之间的差异。“任何想法都改变了”——gem改变了。我会看看两个版本之间的差异。谢谢,已经修复了我的测试。检查值,因为我们有复杂的索引视图生成器,我们团队中的学生很少-我想确保所有索引页面都有正确值的所有必要链接。谢谢,已经修复了我的测试。正在检查值,因为我们有复杂的索引视图生成器,团队中的学生很少-我想确保所有索引页面都有所有必要的链接和正确的值。