问题描述
我想在一个场景中测试网站上的多个数据。
我不想在我的代码中多次使用下面的行来减少代码冗余。
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 }