我正在为一款基于Ruby的命令行应用编写RSpec测试。我想构建我的测试套件以允许测试缺少命令行参数的情况。具体来说,我希望可以模拟出ARGV [0]..ARGV [N]在应用程序中的表现。我看到过类似的帖子提到了ENV.stub; 但是,我不知道如何模拟“无名称”的参数和给定的顺序。 如果有帮助,将不胜感激。谢谢。
我在我的测试用例中(位于spec文件夹)简单地执行了这个操作: it "does something" do arg = "/tmp" exe = File.expand_path('../bin/site_checker', File.dirname(__FILE__)) stdin, stdout, stderr = Open3.popen3("#{exe} -Ilib #{arg}") stdout.readlines.should be_empty end