我有一个脚本,我想在一些使用RSpec的测试中运行,我想测试输入/输出。
例如,
我有一个脚本'script.rb',我使用'ruby script.rb'
运行然后脚本输出到STDOUT并使用STDIN获取输入。我想使用RSPec测试它并检查一切是否正常(功能测试)。我该怎么做呢?只需在RSPec中执行'ruby script.rb',然后测试输出是否符合我的预期,并从STDIN获取输入?
答案 0 :(得分:0)
由于您希望将脚本测试为黑盒子(仅限STDIN / STDOUT),您可以通过system()
调用完美地执行此操作:只需确保清除脚本要留下的所有副作用(例如,临时文件)。
编辑:只需创建一些包含所需内容的文件,例如stdin.txt
。
之后你可以这样运行你的命令:
system('cat stdin.txt | ruby myscript.rb')