gpt4 book ai didi

ruby-on-rails - 是否有用于命令行调用的 VCR(http 交互 stub /重播)之类的东西?

转载 作者:数据小太阳 更新时间:2023-10-29 08:09:16 26 4
gpt4 key购买 nike

我正在开发一个有很多命令行交互的系统。有时甚至通过 SSH。命令有时可能需要长达 30 分钟才能完成。

目前,我正在停止对执行该系统调用的对象的大部分 system 调用。例如:

class BackupBuilderTest < ActiveSupport::TestCase
test "it calls the backup utility over ssh" do
BackupBuilder.expects(:system).with("ssh foo@bar backup").returns(true)
BackupBuilder.perform(:id => @backup.id)
end
end

BackupBuilder
def perform
system("ssh foo@bar backup")
end
end

但是,像 ssh foo@bar backup 这样的命令可能会在很多级别上失败,并且会输出大量数据,我会捕获这些数据并采取行动。它还需要很长的时间来运行;在集成测试中不是一件好事,在单元测试中也 Not Acceptable 。我想运行它,但没有运行所有实际的 ssh 和备份。

对于 HTTP 有 VCR ,这几乎完全符合我想在 CLI 调用中执行的操作。有什么办法吗?还是我错过了一些允许我这样做的模式或常见的 stub 技巧?

最佳答案

这是有人使用补习类的方法:

http://pbrisbin.com/posts/mocking_bash

关于ruby-on-rails - 是否有用于命令行调用的 VCR(http 交互 stub /重播)之类的东西?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18632270/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com