ruby - 在 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 }
推荐阅读
- powerpc - 为什么要使用“bcl 20, 31, $+4”指令来获取LR中下一条指令的地址?为什么不使用“bl $+4”或“bcl 20, xx, $+4”?
- php - 加密原生 PHP 流
- rust - 如何使用“cargo”自定义安装?
- apache-spark-sql - Spark 使用纯 SQL 查询提取嵌套的 JSON 数组项
- flutter - 在屏幕点击上显示应用栏或平面按钮
- pine-script - 试图将复杂的策略转化为警觉
- excel - 删除除已定义列表之外的所有命名范围
- javascript - 如何通过与名称匹配的字符串调用函数并执行它?
- r - 使用之前和之后日期将记录保存到基于另一个数据框的数据框中
- ios - iOS - swift - 为 secp224k1 曲线 (ECDH) 生成密钥对