Rspec:无法理解“and_raise”方法

时间:2010-08-12 02:58:12

标签: rspec

这是我的代码:

account_double.should_receive(:withdraw).and_raise

我得到了输出:

1) Statement uses the customer's name in the header
Failure/Error: Unable to find matching line from backtrace
Exception
# ./spec/codebreaker/test.rb:8:in `generate'
# ./spec/codebreaker/test.rb:20
# /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:31:in `inject'

找不到异常。我怎么能通过这个测试?

我不明白图片

1 个答案:

答案 0 :(得分:6)

尝试向and_raise添加参数 - Exception类或字符串传递给RuntimeError

来自文档:

  

告诉mock引发异常而不是返回值。    可以是任何Exception类,一个实例   任何Exception类或String(在这种情况下会引发RuntimeError)   将该字符串作为其消息)。

account_double.should_receive(:withdraw).and_raise(Exception)