У меня есть следующий код ruby, который я пытаюсь проверить с помощью rspec.rspec: как проверить ssh.scp
begin
Net::SSH.start(server_ip, server_username, :password => server_password) do |ssh|
ssh.scp.upload!(local_file, remote_file)
ssh.exec!("some command")
... more ssh.exec!
end
rescue
puts "Failed to SSH"
end
и мой RSpec выглядит следующим образом:
ssh_mock = double
expect(SSH).to receive(:start).and_yield(ssh_mock)
expect(ssh_mock).to receive(:scp)
expect(ssh_mock).to receive(:exec!).with("some command")
Проблема заключается в том, что тест никогда не проходит, потому что он прыгает на помощь, когда она достигает УПП и scp.upload никогда не проверялись должным образом.
Итак, есть ли способ протестировать scp.upload, когда он вызывается аналогично этому примеру?
До сих пор единственным способом, которым я смог протестировать SCP, является отдельный блок. exp
Net::SCP.start(server_ip, server_username, :password => server_password) do |scp|
scp.upload!(local_file, remote_file)
end
Но могу ли я проверить его, не отделяя SCP от SSH так же, как в первом примере?
работал отлично! Благодарю. – Noushad11