Eu tenho um objeto stub existente, que estou usando como um colaborador em meus testes:
cf_client = Aws::CloudFormation::Client.new(:stub_responses => true)
stack = described_class.new("name", cf_client)
O objeto stub (cf_client
) estava não criado usando rspec-mocks; é uma implementação falsa fornecida pelo aws-sdk
gema, e tem propriedades úteis.
No entanto, ele não fornece verificação de mensagem, então espero agrupar em um proxy que registre as mensagens recebidas, para que eu possa verificá-las posteriormente, enquanto ainda delega para o objeto agrupado, por exemplo,
cf_client = proxy_spy(Aws::CloudFormation::Client.new(:stub_responses => true))
stack = described_class.new("name", cf_client)
stack.create
expect(cf_client).to have_received(:create_stack)
O que eu quero / preciso é o proxy_spy
método. Será que algo assim existe? Posso usar os proxies de verificação do RSpec aqui?
Respostas:
1 para resposta № 1Você está procurando and_call_original
.
cf_client = Aws::CloudFormation::Client.new(:stub_responses => true)
expect(cf_client).to_receive(:create_stack).and_call_original
stack = described_class.new("name", cf_client)
stack.create