2011-05-01 128 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