Let's say I have this snippet of code...
Raven.capture_exception(error, {
extra: {
error_message: message
}
})
end
I have tried to use expect(Raven).to receive(:capture_exception).with(...)
and no matter how I slice this, I can not seem to bind an expect to Raven so I can verify it was sent the logging communications. It keeps telling me capture_exception
is not defined. I have tried both expect
and expect_any_instance_of
with no luck. For now, I have skipped this, but I know there is a way. Thoughts?
Not completely sure of what do you want to test exactly, but this works for me:
class Test
def self.test
begin
1 / 0
rescue => exception
Raven.capture_exception(exception)
end
end
end
In a test, I can setup an RSpec spy: https://relishapp.com/rspec/rspec-mocks/docs/basics/spies
it 'calls raven capture_exception' do
allow(Raven).to receive(:capture_exception) # Setup the spy
Test.test # Call the function that uses Raven.capture_exception
expect(Raven).to have_received(:capture_exception) # Check that the spy was called
end
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With