我试图期望一个带有任何参数的方法调用,但我确实想要手动检查我对do块做的期望的参数。
我得到一个异常,说该方法被调用了两次,但我在该方法中的日志显示它只被调用一次。知道是什么导致了这个吗?
要测试的方法
def users
pp ('Users got called') # only gets logged once
render(template: 'users-template.json.jbuilder', locals: { users: @users })
end
测试
# Test
describe 'users' do
it 'Should only list users' do
expect(controller).to receive(:render) do |params|
pp (params.class)
end
get :users
end
end
异常
Failure/Error: expect(controller).to receive(:render) do |params|
(#<API::V2::MyController:0x0000010c95d438>).render(any args)
expected: 1 time with any arguments
received: 2 times with any arguments
EDIT:
如果我取消注释触发方法调用的代码行,则使用任何参数说出0次。