describe 'Spec' do
let( :qux ){ double 'qux' }
let( :params ){ :foo, :bar, :baz }
specify 'success' do
qux.use :foo, :bar, :baz
expect( qux ).to have_received( :use ).with params
这会生成语法错误,因为
:foo, :bar, :baz
不是有效的ruby。做这件事的好方法是什么?
最佳答案
如果你想做类似的事情,把参数放在一个数组中并使用splat。另外,由于您正在模拟qux
方法,因此您将不得不终止use
方法:
RSpec.describe 'Spec' do
let( :qux ){ double 'qux' }
let( :params ){ [:foo, :bar, :baz] }
specify 'success' do
qux.stub(:use)
qux.use :foo, :bar, :baz
expect( qux ).to have_received( :use ).with *params
end
end
关于ruby - 如何在RSpec期望中将let与多个参数一起使用?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27830167/