rspec - 为什么我不能在 to_raise 匹配器中捕获 Capybara::ElementNotFound ?
问题描述
pry#<> expect(find("#recipients")).to raise_error(Capybara::ElementNotFound)
Capybara::ElementNotFound: Unable to find visible css "#recipients"
我知道测试“未”找到某些元素是困难的并且可能容易出错,但我相信我的用例是一个很好的用例。
我正在尝试制作一个#dont_find 匹配器...
解决方案
您的问题是您试图find('#recipients')
直接传递给expect
,但这不起作用,因为find
引发异常,因此expect
甚至从未被调用。您应该改为传递一个块,如下所示:
expect { find('#recipients') }.to raise_error(Capybara::ElementNotFound)
推荐阅读
- java - Android Studio Java fab 为红色
- r - 如何正确定义使用内部数据集的函数
- javascript - 如何确定 JSON 对象中的维数并将所有数据放入 javascript 中的数组中?
- spring - 无法删除多对多关系Spring Hibernate
- r - 对象大小的不同结果?
- laravel - 不能在 Laravel 控制器上使用 eloquent ::query()
- bash - 根据 bash 脚本中的名称有选择地创建文件夹
- c - 为什么结构在 64 位机器上与 4 字节(32 位)对齐?
- c# - 如何只打开一次第二个表单
- visual-studio - SSRS - RDL 不保存在项目中,必须每次添加