为什么我不能在to_raise匹配器中捕获Capybara :: ElementNotFound?

时间:2018-11-20 18:35:57

标签: rspec capybara

pry#<> expect(find("#recipients")).to raise_error(Capybara::ElementNotFound)
Capybara::ElementNotFound: Unable to find visible css "#recipients"

我知道很难“发现”某些元素,并且很容易出错,但是我确信我的用例是一个很好的用例。

我正在尝试做一个#dont_find匹配器...

1 个答案:

答案 0 :(得分:1)

您的问题是您试图将find('#recipients')直接传递给expect,但这是行不通的,因为find引发异常,因此expect永远不会甚至被称为。您应该改为传递一个块,像这样:

expect { find('#recipients') }.to raise_error(Capybara::ElementNotFound)