【发布时间】:2021-02-10 20:52:55
【问题描述】:
想象一下有一种方法可以拯救并进行一些日志记录。
def do_something
# do stuff
some_client.call(var1)
rescue StandardError => e
# log some stuff.
Rails.logger.error("#{self.class} - Var 1 is #{var1}.") if e.is_a?(MyError)
raise
end
然后在 RSpec 中,我想
- 断言错误已引发。
- 它会记录错误
before do
allow(Rails.logger).to receive(:error)
allow(some_client).to receive(:call).and_raise(MyError)
end
it "logs the error" do
subject
expect(Rails.logger).to have_received(:error).with(/some message with var1/)
end
it "raises MyError" do
expect { subject }.to raise_error(MyError)
end
expect { subject }.to raise_error(MyError) 部分按预期工作,但我应该如何断言日志记录?使用上面的示例代码,RSpec 将在引发的错误上报告错误而不断言日志记录。
【问题讨论】:
标签: ruby-on-rails rspec