在单元测试中捕获调试窗口输出?

如果使用给定参数--static调用命令行应用程序,我正在编写一些实用程序代码以将统计信息打印到stdout。现在,我只是使用print和字符串插值(太棒了!)。

似乎这也是我应该在单元测试中添加的内容。

在测试代码中有没有简便的方法 将输出重定向到字符串或捕获它,以便我可以XCTAssertEqual反对它?

colinhmj429 回答:在单元测试中捕获调试窗口输出?

重定向输出不是您在单元测试中执行输出的方式。相反,您有一些替代选择:

  • 您可以使用一个诸如generateStatistics之类的辅助函数,该辅助函数生成一个字符串,然后将其打印出来。在单元测试中,您不会测试打印部分。相反,您仅测试函数generateStatistics是否提供正确的结果字符串。然后可以在集成测试中测试打印部分。

  • 您可以模拟打印功能,即用一个功能代替它,而不是打印字符串,而是收集它们并允许您的测试代码对其进行分析。我不熟悉swift,因此无法告诉您是否可以轻松地直接模拟print-如果不能,则可以将其与其他可以模拟的函数一起包装。

附带说明:您提到您的选项是--static,但我想您是说--statistic,对吧?

本文链接:https://www.f2er.com/3108631.html

大家都在问