以静音模式测试Rake任务

时间:2011-05-01 12:40:12

标签: ruby unit-testing

我的佣金任务看起来像那样

task :install do
  Module1.install
end

Module1有多个逻辑步骤,带有一堆“puts”语句,用于打印调试信息。

如何测试此rake任务(通过直接测试Module1.install)以便它不会将所有调试信息直接打印到测试控制台中?

在内核模块中有没有比修补put方法更惯用的方法?

1 个答案:

答案 0 :(得分:0)

您可以为此任务重新分配$stdout

require "stringio"

task :install do
  new_stdout = StringIO.new
  old_stdout = $stdout  
  $stdout = new_stdout

  Module1.install

  $stdout = old_stdout
end