【发布时间】:2021-11-27 22:46:53
【问题描述】:
假设我在 ruby 中调用一个带有块参数的 Ruby 方法:
Net::SFTP.start('testhost.com', 'test_user', keys: ['key']) do |sftp|
sftp.upload!('/local', '/remote')
end
如何测试upload! 方法是否使用正确的参数调用?
我可以做到这一点,测试#start 的参数,
expect(Net::SFTP).
to receive(:start) do |host, username, keyword_args, &block|
expect(host).to eq("testhost.com")
expect(username).to eq("test_user")
expect(keyword_args).to eq(keys: ["test_key"])
end
但我不知道如何测试在块中调用了 #upload!。
【问题讨论】:
标签: ruby-on-rails ruby rspec rspec-rails