如何只测试RSpec中的多个方法调用之一?

问题描述

def some_method
  subject.put(1)
  subject.put(2)
  ...
end

由于对put的调用不止一次,因此以下操作失败,是否可以仅验证发生的第一个调用不关心其余调用?

expect(subject).to receive(:put).with(1).once

解决方法

玩了一会儿,以下内容起作用了。

allow(subject).to receive(:put)
expect(subject).to receive(:put).with(1).once
,

通常,您需要将设置和期望分开,例如:

before do
  allow(subject).to receive(:put)
end

it 'invokes put' do
  expect(subject).to receive(:put).with(1).once
end

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...