Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在运行返回puts到控制台的测试,返回值为nil
puts
nil
问题是,puts每当我使用 RSpec 运行测试时,我都会得到输出。
您将如何测试此输出并确保测试控制台中没有显示输出?
一种方法是重构代码,以便将 IO 对象作为输入并通过调用它来提供其输出puts。在正常使用中,使用 $stdout 但在您的测试中使用 StringIO 对象。
如果这不可行,您可以考虑在测试中在被测试的类中定义一个特殊的 puts 方法。这将隐藏真正的 puts 方法。