0

我有一个创建新对象并以该新对象作为参数调用服务并返回新对象的方法。我想在 rspec 中测试该方法使用创建的对象调用服务,但我不提前知道创建的对象。我还应该存根对象创建吗?

def method_to_test
   obj = Thing.new
   SomeService.some_thing(obj)
end

我想写:

SomeService.stub(:some_thing)
SomeService.should_receive(:some_thing).with(obj)
method_to_test

但我不能,因为obj直到method_to_test回来我才知道......

4

1 回答 1

3

根据检查是否重要,obj您可以执行以下操作:

SomeService.should_receive(:some_thing).with(an_instance_of(Thing))
method_to_test

或者:

thing = double "thing"
Thing.should_receive(:new).and_return thing
SomeService.should_receive(:some_thing).with(thing)
method_to_test
于 2013-06-24T10:32:28.460 回答