Rspec тестирование Sentry's Raven capture_exception - PullRequest
0 голосов
/ 22 февраля 2019

Допустим, у меня есть этот фрагмент кода ...

  Raven.capture_exception(error, {
    extra: {
      error_message: message
    }
  })
end

Я пытался использовать expect(Raven).to receive(:capture_exception).with(...) и, как бы я это ни нарезал, я не могу связать ожидание с Равеном, такЯ могу проверить, было ли отправлено протоколирование сообщений.Это постоянно говорит мне, что capture_exception не определено.Я попробовал оба expect и expect_any_instance_of без удачи.Пока я это пропустил, но знаю, что есть способ.Мысли?

1 Ответ

0 голосов
/ 22 февраля 2019

Не совсем уверен, что именно вы хотите проверить, но у меня это работает:

class Test
  def self.test
    begin
      1 / 0
    rescue => exception
      Raven.capture_exception(exception)
    end
  end
end

В тесте я могу настроить шпиона RSpec: 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
...