неопределенный метод to_sym, когда файл yaml заглушен - PullRequest
0 голосов
/ 17 сентября 2018

У меня есть задача rspec, которую я хотел бы реализовать с помощью заглушенного конфигурационного файла:

let(:request_builder) { described_class.new(env: nil) } 
  let(:trx_types)       { ['davivienda'] }
  let(:trx_type)        { 'davivienda' }
  let(:gateway)         { 'girogate' }
  let(:currency)        { 'USD' }
  let(:base_params)     { request_builder.send(:base_params) }

  before(:each) { allow(request_builder).to receive(:currency).and_return('USD') }

  let(:yaml_file) { YAML::load(File.read(File.join('spec', 'fixtures', 'yaml', 'env.yml'))) }
  let(:config)    { yaml_file['SOF_DEV'] }

  context '#submit!' do

    it "sends test transactions" do

      allow(request_builder).to receive(config).and_return(config) 
      request_builder.submit!

      PAYMENT_TYPE_WITH_BASE_PARAMS.each do |x|
        expect(request_builder).te receive(:process_trx).with(factory(x), :gateway, :base_params)
      end
    end
  end

В этой строке я получаю сообщение об ошибке:

allow(request_builder).to receive(config).and_return(config) 


NoMethodError:
       undefined method `to_sym' for #<Hash:0x007f86484eb440>

Знаете ли вы, как я могуисправить эту проблему?

1 Ответ

0 голосов
/ 17 сентября 2018

Вы передали config вместо :config ожидаемому вызову.

Должно быть:

allow(request_builder)
  .to receive(:config)
  .and_return(config)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...