首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >尝试存根Rspec 3中模型的链式方法

尝试存根Rspec 3中模型的链式方法
EN

Stack Overflow用户
提问于 2014-12-12 14:45:31
回答 2查看 153关注 0票数 3

我真的是Rspec的新手,并试图找到我的答案,但它一直指导我使用stub_chain,但它似乎在Rspec3上被弃用了。我有以下几个我正在尝试的存根:

代码语言:javascript
运行
复制
active_automation = Client.automation_active_status.new_client

其中Client是我的模型,automation_active_status是我的客户端模型中的以下内容

代码语言:javascript
运行
复制
scope :automation_active_status, -> { where(automation_status: true) }

new_client是我想要调用以进一步过滤结果的属性

我试图实现stub_chain,但没有成功。我的目标是让以下内容发挥作用:

代码语言:javascript
运行
复制
Client.any_instance( black_box_I_can_not_figure_out ).returns[something]

谢谢。

EN

回答 2

Stack Overflow用户

发布于 2014-12-17 23:08:06

我相信你可能在找allowreceive_message_chain

代码语言:javascript
运行
复制
allow(Client).to receive_message_chain(:automation_active_status, :new_client) { [thing_to_return] }

这将对允许它的方法进行存根,并返回您传递给它的块产生的任何结果。希望能有所帮助。

票数 5
EN

Stack Overflow用户

发布于 2014-12-12 17:10:46

Client.stub_chain(:automation_active_status, :new_client).and_return([thing-to-return])应该会带你去你想去的地方。

此外,应该在类的实例上使用any_instance。例如,Client.first是一个实例,而Client是类(您可以直接在它上面存根)。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27438280

复制
相关文章

相似问题

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