如何用Python编写代码来验证stdout的输出结果?
- 内容介绍
- 文章标签
- 相关推荐
本文共计783个文字,预计阅读时间需要4分钟。
问题:你的程序中有一个方法会将输出打印到标准输出(sys.stdout)。也就是说,它会将文本打印到屏幕上。你想写一个测试来证明它,给一个输入,相应的输出能正常显示出来。
解决方案:使用Python的内置库`unittest`来编写测试用例。以下是一个简单的测试示例:
pythonimport sysimport unittest
def print_to_stdout(text): print(text, file=sys.stdout)
class TestPrintToStdout(unittest.TestCase): def test_print_to_stdout(self): input_text=Hello, World! expected_output=Hello, World!\n sys.stdout=io.StringIO() # 捕获输出 print_to_stdout(input_text) actual_output=sys.stdout.getvalue() sys.stdout=sys.__stdout__ # 恢复标准输出 self.assertEqual(actual_output, expected_output)
if __name__=='__main__': unittest.main()
问题
你的程序中有个方法会输出到标准输出中(sys.stdout)。也就是说它会将文本打印到屏幕上面。 你想写个测试来证明它,给定一个输入,相应的输出能正常显示出来。
本文共计783个文字,预计阅读时间需要4分钟。
问题:你的程序中有一个方法会将输出打印到标准输出(sys.stdout)。也就是说,它会将文本打印到屏幕上。你想写一个测试来证明它,给一个输入,相应的输出能正常显示出来。
解决方案:使用Python的内置库`unittest`来编写测试用例。以下是一个简单的测试示例:
pythonimport sysimport unittest
def print_to_stdout(text): print(text, file=sys.stdout)
class TestPrintToStdout(unittest.TestCase): def test_print_to_stdout(self): input_text=Hello, World! expected_output=Hello, World!\n sys.stdout=io.StringIO() # 捕获输出 print_to_stdout(input_text) actual_output=sys.stdout.getvalue() sys.stdout=sys.__stdout__ # 恢复标准输出 self.assertEqual(actual_output, expected_output)
if __name__=='__main__': unittest.main()
问题
你的程序中有个方法会输出到标准输出中(sys.stdout)。也就是说它会将文本打印到屏幕上面。 你想写个测试来证明它,给定一个输入,相应的输出能正常显示出来。

