2011-05-01 124 views
2

我rake任务看起来像测试Rake任务

task :install do 
    Module1.install 
end 

模块1有一堆“看跌期权”,它打印调试信息报表的多个逻辑步骤。

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

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

回答

0

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

require "stringio" 

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

    Module1.install 

    $stdout = old_stdout 
end