rspec raise_error无法使用allow_any_instance

时间:2015-08-25 19:17:21

标签: ruby rspec3

我正在尝试使用以下rpsec代码

引发错误
allow_any_instance_of(ClientClass).to receive(:instance_method).and_raise(ErrorClass, 'Error raised')

我尝试测试的代码有一个实例方法

def to_be_tested_code
   # do some stuff
   client = ClientClass.new
   client.instance_method
   # do other stuff 
end

我的问题:

  1. 当我尝试运行测试用例时,不会引发错误。我做错了什么?
  2. 我知道double建议用来模拟东西但是我必须double一个ClientClass对象并注入它,导致我的方法签名改变为#to_be_test_code(client_class_instance)。由于#to_be_test_code是一种公共方法,因此为了便于测试,我不想更改方法签名。

0 个答案:

没有答案