命令行程序Ruby / RSpec的功能测试

时间:2015-09-15 16:54:32

标签: ruby-on-rails ruby ruby-on-rails-3 rspec

我有一个脚本,我想在一些使用RSpec的测试中运行,我想测试输入/输出。

例如,

我有一个脚本'script.rb',我使用'ruby script.rb'

运行

然后脚本输出到STDOUT并使用STDIN获取输入。我想使用RSPec测试它并检查一切是否正常(功能测试)。我该怎么做呢?只需在RSPec中执行'ruby script.rb',然后测试输出是否符合我的预期,并从STDIN获取输入?

1 个答案:

答案 0 :(得分:0)

由于您希望将脚本测试为黑盒子(仅限STDIN / STDOUT),您可以通过system()调用完美地执行此操作:只需确保清除脚本要留下的所有副作用(例如,临时文件)。

编辑:只需创建一些包含所需内容的文件,例如stdin.txt

之后你可以这样运行你的命令:

system('cat stdin.txt | ruby myscript.rb')