【问题标题】:Checking multiple content on the page using have_content in BDD在 BDD 中使用 have_content 检查页面上的多个内容
【发布时间】:2021-06-19 05:52:11
【问题描述】:

我想在一个场景中测试网站上存在的多个数据。

我不想在我的代码中多次使用下面的行来减少代码冗余。 expect(page).to have_content 'test1' expect(page).to have_content 'test2'

我发现了另一种在单个语句中编写此内容的方法,例如, page.should(satisfy { |page| page.has_content?('test1') and page.has_content?('test2') })

但是,有没有更好的方法来实现这一点,因为我想在我的网站上验证 10 个这样的内容,并且我不希望代码通过重复代码看起来很长。

【问题讨论】:

    标签: ruby rspec capybara bdd matcher


    【解决方案1】:

    如果您的条件中只有and 运算符,那么您可以使用Enumerable#all?

    ['test1','test2'].all? { |str| expect(page).to have_content str }
    

    【讨论】:

    • 当我使用上面的代码时,它也被传递了无效值。我想知道我们是否需要像期望(页面)一样使用其他任何东西。或类似的东西?
    • 你说得对,我只是向你展示了一种将所有条件放在一起的方法,因为我不确定其余的。我编辑了答案,它现在应该“按原样”工作
    猜你喜欢
    • 1970-01-01
    • 2013-04-13
    • 2021-07-07
    • 2023-03-09
    • 1970-01-01
    • 2020-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多