标签: ruby rspec
我正在运行将puts返回到控制台的测试,返回值为nil
puts
nil
问题是,每当我使用RSpec运行测试时,我现在都会收到puts输出。
您将如何测试此输出并确保测试控制台中没有输出?
答案 0 :(得分:2)
一种方法是重构代码,使其将IO对象作为输入,并通过调用puts来提供其输出。在正常使用中,使用$ stdout但在测试中使用StringIO对象。
如果这不可行,您可以在测试中考虑在被测试的类中定义一个特殊的puts方法。这会隐藏真实的放置方法。