在 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 个这样的内容,并且我不希望通过重复代码使代码看起来很长。

解决方法

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

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