RSpec / AnyInstance: избегайте заглушки, используя проблему allow_any_instance_of - PullRequest
0 голосов
/ 15 ноября 2018

Помоги мне.Я не понимаю, как это исправить.Я пытался во многих вариантах ...

driver_iq_driver_spec.rb

describe '.perform' do
it 'correctly parse response' do
  driver = described_class.new(dot_application, background_check_type, provider_setting).perform
  expect(driver).to be_instance_of(BackgroundCheck)
  expect(driver).to have_attributes(status: 'inprogress', background_check_type_id: 4)
end

context 'when exception when status is Error' do
  before { allow_any_instance_of(described_class).to receive(:driver_iq_api).and_return('https://test/error') }

  it 'returns error message' do
    expect { described_class.new(dot_application, background_check_type, provider_setting).perform }.
      to raise_error(RuntimeError)
  end
 end
end

Ошибка: RSpec / AnyInstance: избегать заглушки с использованием allow_any_instance_of.до {allow_any_instance_of (описанный_класс). получать (: driver_iq_api) .and_return ('https://test/error')}

1 Ответ

0 голосов
/ 15 ноября 2018

У вас есть довольно специфический экземпляр вашего described_class, который вы можете заглушить:

context 'when exception when status is Error' do
  let(:subject) { described_class.new(dot_application, background_check_type, provider_setting) }

  before { allow(subject).to receive(:driver_iq_api).and_return('https://test/error') }

  it 'returns error message' do
    expect { subject.perform }.to raise_error(RuntimeError)
  end
 end

Предполагается, что perform вызывает ошибку, не инициализируя экземпляр.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...