как найти ошибки / отладки в rspe c? - PullRequest
0 голосов
/ 14 апреля 2020

Я использую rails logger, чтобы регистрировать исключение, выброшенное в моем классе. У меня есть следующий метод spe c, чтобы проверить, что исключение выдается и оно регистрируется, но я получаю следующую ошибку на линии ожидаемо (logger) .to receive (: warn) .with ('непредвиденная ошибка') -> (Double "logger"). warn ('непредвиденная ошибка') ожидается: 1 раз с аргументами: ("неожиданная ошибка") получено: 0 раз

есть ли другой способ сделать это?


describe Client do
 describe '#send' do
   let (:logger) {double('logger')} 
   let (:subject) {'HTTParty'}
   let(:error) { HTTParty::Error.new('unexpected error') }  

   before do
     allow(logger).to receive(:warn).with('unexpected error')
     allow(subject)to receive(:get).and_raise(error)
   end
   it 'raises and logs the exception'
      expect{
         expect(logger).to receive(:warn).with('unexpected error')
         subject.get
      }.to raise_error(error)
   end
 end
end

client.rb

class Client
  include HTTParty 
  base_uri "https://www.example.com"
  format :json

  def send
    begin 
      response = HTTParty.get(url)
      if response.successful?
        response 
      else
        raise 'invalid response'
      end
    rescue HTTParty::Error => e 
      logger.warn(e.message)
    end
  end
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...