我的测试中有这个

Project.should_receive(:find).with(@project).and_return(@project)

但当object两次收到该方法调用时,我必须

Project.should_receive(:find).with(@project).and_return(@project)
Project.should_receive(:find).with(@project).and_return(@project)

有没有办法说这样的话

Project.should_receive(:find).with(@project).and_return(@project).times(2)

推荐答案

This is outdated. Please check Uri's answer below

2次:

Project.should_receive(:find).twice.with(@project).and_return(@project)

整整n次:

Project.should_receive(:find).exactly(n).times.with(@project).and_return(@project)

至少n次:

Project.should_receive(:msg).at_least(n).times.with(@project).and_return(@project)

更多详情请参见Receive Counts以下https://www.relishapp.com/rspec/rspec-mocks/v/2-13/docs/message-expectations/receive-counts

希望能有所帮助()

Ruby-on-rails相关问答推荐

如何将Form_With用于多个没有控制器的型号

使用FactoryBot测试ActiveStorage的RSpec请求规范

RubyOnRail在测试环境中启动失败

Django模型在关系更新时更新相关对象

Rails 5.1.7:Sprockets::Rails::Helper::AssetNotFound

我的 Ruby on Rails Web API 的 Docker 映像未在服务器上构建,因为它未与 ruby​​gems.org 连接

API Rails 路由,令牌是路由的一部分

Rails 使用多个外键创建/构建

jbuilder vs rails-api/active_model_serializers 用于 Rails 4 中的 JSON 处理

为什么在保存对象后使用重新加载方法? (Hartl Rails Tut 6.30)

jQuery ajax 请求不会触发 Rails 控制器的 JS 响应?

Rails如何对列求和?

如何让空白复选框作为假传递给参数

Rails 4 pgsql add_index 类型为 GIN 或 GiST

Rails 控制台中手动更新属性值的验证问题

has_many :通过 class_name 和 foreign_key

Rails 3 返回 HTTP 406 Not Acceptable?

从 Rails 中的 ActiveRecord::RecordNotFound 救援

Date.current 和 Date.today 有什么区别?

Rails.cache 在测试之间被清除了吗?