首页 > 解决方案 > 在 BDD 中使用 have_content 检查页面上的多个内容

问题描述

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

我不想在我的代码中多次使用下面的行来减少代码冗余。 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 个这样的内容,并且我不希望代码通过重复代码看起来很长。

标签: rubyrspeccapybarabddmatcher

解决方案


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

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

推荐阅读