Настройте ожидание в rspec - PullRequest
0 голосов
/ 27 сентября 2018

Я хочу реализовать rspec с expect.Я пытался это:

RSpec:

describe WechatRequestBuilder do

  let(:request_builder) { described_class.new(env: 'test_env') }   
  let(:trx_types)       { ['wechat'] }
  let(:trx_type)        { 'wechat' }
  let(:gateway)         { 'wechat' }
  let(:currency)        { 'CNY' }
  let(:base_params)     { request_builder.send(:base_params) }

  it_behaves_like 'request builder', true   

  context '#submit!' do

    it "sends test transactions" do     
      allow(request_builder).to receive(:process_trx).with(trx_types, gateway)  
      binding.pry

      request_builder.submit! 
      expect(request_builder.submit!).to receive(:process_trx).with(trx_types, gateway)
    end
  end
end

Модификатор запроса:

class RequestModifier   
  def get_trx_type(request_body)
    doc = Nokogiri::XML(request_body)
    doc.search("transaction_type").first.text
  end
end

Я пытался найти некоторыеобъект с binding.pry, но без везения:

[1] pry(#<RSpec::ExampleGroups::WechatRequestBuilder::Submit>)> request_builder
=> #<WechatRequestBuilder:0x007ffc1af4fd80 @env="test_env", @request_modifier=#<RequestModifier:0x007ffc1af4fd30>>

Можете ли вы привести пример, основанный на приведенном выше коде, который я должен настроить как «ожидаемый»?В настоящее время я получаю:

(nil).process_trx(["wechat"], "wechat")
           expected: 1 time with arguments: (["wechat"], "wechat")
           received: 0 times
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...