Rspec 测试(无法判断某行代码是否被执行)

Rspec testing (can't tell whether a certain line of code is getting executed)

我尝试在 rspec 中测试此方法:

def resend_if_failed
  ResendWorker.new(self).resend_message
end

如何测试 ResendWorker.new(self).resend_message 是否已执行?

如果您的规范中有实例,您可以这样做:

expect(instance).to receive(:resend_if_failed)
instance.resend_if_failed

显然我猜resend_if_failed是由另一种方法触发的。

然后如有必要,单独测试 resend_if_failed 行为。

worker = double
allow(ResendWorker).to receive(:new).and_return(worker)
expect(worker).to receive(:resend_message)

instance.resend_if_failed