首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Rails / Rspec:.should_receive(方法).with(参数),其中参数在调用被测试的方法之前是未知的

Rails / Rspec:.should_receive(方法).with(参数),其中参数在调用被测试的方法之前是未知的
EN

Stack Overflow用户
提问于 2013-06-24 18:06:39
回答 1查看 122关注 0票数 0

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

代码语言:javascript
复制
def method_to_test
   obj = Thing.new
   SomeService.some_thing(obj)
end

我想写下:

代码语言:javascript
复制
SomeService.stub(:some_thing)
SomeService.should_receive(:some_thing).with(obj)
method_to_test

但是我不能因为在method_to_test回来之前我不知道obj ..。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-24 18:32:28

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

代码语言:javascript
复制
SomeService.should_receive(:some_thing).with(an_instance_of(Thing))
method_to_test

或者:

代码语言:javascript
复制
thing = double "thing"
Thing.should_receive(:new).and_return thing
SomeService.should_receive(:some_thing).with(thing)
method_to_test
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17272867

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档