加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 确保Rollbar报告了RSpec错误

发布时间:2020-12-17 02:24:51 所属栏目:百科 来源:网络整理
导读:我班级中的逻辑有时会使用Rollbar.silenced忽略一些异常(因此不会报告它们). 我正在尝试编写一个测试,确保rollbar实际报告错误. it 'does not mute rollbar' do expect(Rollbar).not_to receive(:silenced) expect(Rollbar).to receive(:error).with(any_arg
我班级中的逻辑有时会使用Rollbar.silenced忽略一些异常(因此不会报告它们).

我正在尝试编写一个测试,确保rollbar实际报告错误.

it 'does not mute rollbar' do
        expect(Rollbar).not_to receive(:silenced)
        expect(Rollbar).to receive(:error).with(any_args).and_call_original
        expect { query }.to raise_error(unknown_exception)
end

不幸的是,当报告未解决的错误时,rollbar不会用于:error,:critical,:warning等方法.

我在rollbar sourcecode中看到了report_exception_to_rollbar和call_with_rollbar,它们都是用Rollbar.scoped包装的.

所以我尝试用以下方法测试它:

expect(Rollbar).接收(:scoped).with(any_args).and_call_original

但它也告诉我:

Failure/Error: expect(Rollbar).to receive(:scoped).with(any_args).and_call_original
       (Rollbar).scoped(*(any args))
           expected: 1 time with any arguments
           received: 0 times with any arguments

如何确保滚动条捕获异常并使用rspec进行测试?

解决方法

您要确保运行的行是 Rollbar.log call in exception_reporter.rb.(Rollbar.error,Rollbar.warning等只是Rollbar.log周围的包装.)

试试这个:

expect(Rollbar).接收(:log).with(any_args).and_call_original

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读