【发布时间】:2009-10-16 19:52:34
【问题描述】:
我有这个代码:
Net::SSH.start(@server, @username, :password => @password) do |ssh|
output = ssh.exec!(@command)
@logger.info 'SSH output: '
@logger.info output
end
我可以模拟 SSH。像这样开始使用 RSpec 的模拟框架,告诉我我已经启动了 SSH 会话:
Net::SSH.should_receive(:start).with("server", "user", :password => "secret") do
@started = true
end
这告诉我我是否已经@started ssh 会话。现在我需要模拟 ssh.exec!方法,很简单:
Net::SSH.should_receive(:exec!).with("command")...
但是我如何产生/调用包含 ssh.exec 的块!方法调用,因为我已经模拟了 SSH.start 方法?可能有一些简单的方法我可以调用来执行这个块,但我不知道它是什么,并且在 rspec 的模拟框架上找不到任何真正好的解释/文档。
【问题讨论】: