RSpec mock service и соответствующий метод - PullRequest
0 голосов
/ 24 сентября 2018

Я хочу смоделировать сервис, который возвращает целое число 0 при вызове с get_auth_key.api_response_code.

Это то, что у меня есть до сих пор:

  before(:each) do
    PolicyObjects::BpointRequestPolicy.any_instance.stub(:get_auth_key).and_return(OpenStruct.new(api_response_code: 0))
  end

Я бы хотелизбегайте создания класса для этого в тесте, так как я считаю, что это излишне.Где-то в кодовой базе вызывается response = PolicyObjects::BpointRequestPolicy.new(...), а затем сравнивается: if response.api_response_code == 0.Я хотел бы, чтобы он возвращал 0 для проверки условий в моем тесте.

Каков наилучший способ или самый простой способ сделать это?

1 Ответ

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

Это отличный вариант использования двойного или лучшего instance_double, если вы знаете класс, который вы издеваетесь:

let(:api_resonse) { instance_double("SomeResponseClass", api_response_code: 0) }  

before(:each) do 
  PolicyObjects::BpointRequestPolicy.any_instance.stub(:get_auth_key).and_return(api_response)
end
...