カスタム Bugsnag meta_data (Ruby で Rspec を使用) をどのようにテストしますか?
テストしたいコード:
def do_something
thing_that_could_error
rescue => e
Bugsnag.notify(e) do |r|
r.meta_data = { my_extra_data: "useful info" }
end
end
私が書きたいテスト:
context "when there's an error" do
it "calls Bugsnag with my special metadata" do
expect(Bugsnag).to receive(:notify) # TODO test meta_data values contain "my useful info"
expect do
do_something() # exception is thrown and rescued and sent to Bugsnag
end.not_to raise_error
end
end
私は使っている:
- ルビー 2.6.6
- Rspec 3.9.0
- バグナグ 6.17.0 https://rubygems.org/gems/bugsnag
変数内のデータはmeta_data
、この小さな例よりもかなり複雑なので、テストしたいと思います。美しい世界では、そのロジックをヘルパーに抽出してヘルパーをテストしますが、現時点ではその場でテストすることが緊急かつ有用です。
これを理解するために Bugsnag gem の内部 (さらに、さまざまな内部状態と返されたデータをキャプチャするための Rspec-fu) を調べてきましたが、ある時点でインターネットに問い合わせることをお勧めします。