我认为这是非常新手的东西,但我正在学习Ruby,我正在开发一个小型CLI工具,它接收一些参数以便正确地完成它的工作。这是我目前的工作流程:
我想测试(使用Minitest)所有可能的流程:
现在,如果我运行测试,我唯一看到的是帮助输出,因为没有传递参数。
所以,有几个问题:
puts
)谢谢!
答案 0 :(得分:1)
漂亮的图表!
你可以使用像aruba https://github.com/cucumber/aruba
这样的助手或深入红宝石内部以便将其弯曲到您的意愿!
# test.rb
pseudoIO = StringIO.new
$stdout = pseudoIO
puts "hi #{ARGV.join(', ')}"
ARGV.replace ["file1"]
puts "now its #{ARGV.join(', ')}"
abort "captured: #{pseudoIO.string}"
输出应该是
ruby text.rb "whutup"
# => captured: hi whutup
# => now its file1