2013-08-28 127 views
1

我正在返回puts與返回值來控制檯nil如何測試RSpec的測試在命令行輸出

問題測試的是,我現在越來越puts輸出出來,每當我跑使用RSpec測試。

您將如何測試此輸出並確保在測試控制檯中沒有顯示輸出?

+2

請發表編碼。 –

+0

[測試輸出到RSpec命令行]可能重複(http://stackoverflow.com/questions/11349270/test-output-to-command-line-with-rspec) – Stefan

回答

2

一種方法是重構代碼,以便將IO對象作爲輸入並通過調用puts來輸出它的輸出。在正常使用中,使用$ stdout但在測試中使用StringIO對象。

如果這樣做不可行,那麼可以考慮在你的測試中定義一個特殊的put方法在被測試的類中。這將隱藏真正的put方法。

+0

重構代碼是最好的選擇。 – Hauleth