RSpec 在循环中存根相同的方法
RSpec Stub same method in loop
使用 RSpec,我想:
expect(Thing).to receive(:status)
.with(for: 'something')
.and_return('down')
在第一次迭代中,同一个存根在第二次迭代中应该 return 不同 return:
expect(Thing).to receive(:status)
.with(for: 'something')
.and_return('up')
测试以下代码片段时:
2.times do |i|
break if Thing.status(for: 'something') == 'up'
sleep 2
raise MyError if i > 0
end
我该怎么做?
只需存根一次并提供 all the return values。
expect(Thing).to receive(:status)
.with(for: 'something')
.and_return('down', 'up')
第一次调用 status
时,它将 return 'down'
。第二次它将 return 'up'
.
您可以在存根 rspec 方法调用时指定多个 return 值
使用 RSpec,我想:
expect(Thing).to receive(:status)
.with(for: 'something')
.and_return('down')
在第一次迭代中,同一个存根在第二次迭代中应该 return 不同 return:
expect(Thing).to receive(:status)
.with(for: 'something')
.and_return('up')
测试以下代码片段时:
2.times do |i|
break if Thing.status(for: 'something') == 'up'
sleep 2
raise MyError if i > 0
end
我该怎么做?
只需存根一次并提供 all the return values。
expect(Thing).to receive(:status)
.with(for: 'something')
.and_return('down', 'up')
第一次调用 status
时,它将 return 'down'
。第二次它将 return 'up'
.
您可以在存根 rspec 方法调用时指定多个 return 值