2013-08-28 82 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