代码之家  ›  专栏  ›  技术社区  ›  Tom

黄瓜水飞蓟新品系特征

  •  0
  • Tom  · 技术社区  · 7 年前

    我在用黄瓜和卷心菜。我注意到,在安装了一个bundle之后,突然间我的测试失败了,新的行字符作为文本的一部分出现在字符串中。

    示例错误:

    RSpec::Expectations::ExpectationNotMetError: expected to find text "Longview Road Clase Swansea SA6 7JL" in "Skip to main content\nGOV.UK\nDigital tachograph card\n......."
    

    在过去,那些新行字符不在那里。我正在努力追查到底是哪块宝石造成了这一切。

    有没有一种方法可以阻止这种情况,而不需要对我从网页中提取的每一个文本字符串进行删除?

    一些gem版本:

    水豚-2.18 RSPEC期望-3.7.0 黄瓜-2.4.0

    1 回复  |  直到 7 年前
        1
  •  3
  •   Thomas Walpole    7 年前

    你确定你坐的是Capybara 2.18吗?这是在Capybara 3中发生的一种行为,在这种情况下,驱动程序现在将返回更接近向用户显示内容的文本。- https://github.com/teamcapybara/capybara/blob/master/UPGRADING.md#node . 如果你真的不使用Capybara3.x,那么你可能更新了你使用Capybara的驱动程序,它不再支持Capybara2.x的行为。

    如果您现在在capybara 3.x上,那么您要么需要更改测试以检查实际显示的内容(这是对页面内容更正确的检查),要么可以使用capybara 3.5+版本,它添加了 normalize_ws 文本/内容匹配器的选项,以便您可以编写

    expect(element).to have_text('Longview Road Clase Swansea SA6 7JL', normalize_ws: true)
    

    复制更多类似2.x的行为

    推荐文章