1

我正在运行返回puts到控制台的测试,返回值为nil

问题是,puts每当我使用 RSpec 运行测试时,我都会得到输出。

您将如何测试此输出并确保测试控制台中没有显示输出?

4

1 回答 1

2

一种方法是重构代码,以便将 IO 对象作为输入并通过调用它来提供其输出puts。在正常使用中,使用 $stdout 但在您的测试中使用 StringIO 对象。

如果这不可行,您可以考虑在测试中在被测试的类中定义一个特殊的 puts 方法。这将隐藏真正的 puts 方法。

于 2013-08-28T15:22:10.013 回答