这是我的代码:
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'
找不到异常。我怎么能通过这个测试?
我不明白图片
答案 0 :(得分:6)
尝试向and_raise
添加参数 - Exception
类或字符串传递给RuntimeError
来自文档:
告诉mock引发异常而不是返回值。 可以是任何Exception类,一个实例 任何Exception类或String(在这种情况下会引发RuntimeError) 将该字符串作为其消息)。
account_double.should_receive(:withdraw).and_raise(Exception)