捆绑更新后,Rails功能测试失败

时间:2015-12-17 08:18:57

标签: 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测试,所有工作都按预期工作 - 获得链接的相对路径。

抱歉我的英文。

1 个答案:

答案 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的实际值确实不是集成测试需要担心的事情。他们应该更多的是,如果我点击它,我最终会在一个能够编辑项目

的页面上