【发布时间】:2016-08-19 04:41:20
【问题描述】:
我有一堂课如下...
class Sequencer
def initialize(error_raiser: nil)
@error_raiser = error_raiser || ErrorRaiser.new
end
def order(string)
error_raiser.raise_error(string)
end
attr_reader :error_raiser
end
如何在我的 sequencer_spec 文件中检查 @error_raiser 收到带有字符串的 raise_error?我尝试过使用这样的实例间谍......
let(:error_raiser) { instance_spy("ErrorRaiser" }
describe Sequencer do
describe '.order' do
it "passes the string to an error_raiser" do
subject.order("a => b,")
expect(error_raiser).to have_received(:raise_error).with("a => b")
end
end
end
但是我得到以下错误...
(InstanceDouble(ErrorRaiser) (anonymous)).raise_error("a => b")
expected: 1 time with arguments: ("a => b")
received: 0 times
【问题讨论】:
-
对 subject.order 的调用中多余的逗号是故意的吗?