博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python unittest 测试输入(input)和输出(print)
阅读量:6373 次
发布时间:2019-06-23

本文共 952 字,大约阅读时间需要 3 分钟。

Python 自带的 unittest 库可以用来写单元测试。

测试输入输出的解决方法是:

将标准输入输出定向到一个StringIO类(python3是 io.StringIO)。

import unittestimport ioimport sysdef stub_stdin(testcase_inst, inputs):    stdin = sys.stdin    def cleanup():        sys.stdin = stdin    testcase_inst.addCleanup(cleanup)    sys.stdin = io.StringIO(inputs)def stub_stdout(testcase_inst):    stderr = sys.stderr    stdout = sys.stdout    def cleanup():        sys.stderr = stderr        sys.stdout = stdout    testcase_inst.addCleanup(cleanup)    sys.stderr = io.StringIO()    sys.stdout = io.StringIO()def fun():    x = int(input())    print(x+5)class UnitTest(unittest.TestCase):    def test_fun(self):        stub_stdin(self, '2\n4\n') # 依次输入2,4                stub_stdout(self)        fun()        self.assertEqual(str(sys.stdout.getvalue()), '7\n')                stub_stdout(self) # 重置输出        fun()        self.assertEqual(str(sys.stdout.getvalue()), '9\n')if __name__ == '__main__':    unittest.main()

转载地址:http://wtjqa.baihongyu.com/

你可能感兴趣的文章
(原創) 如何設定Nios II EDS最佳環境? (SOC) (Nios II)
查看>>
关于Sql Server企业管理器MMC 不能打开文件的解决方法
查看>>
简单验证码识别程序(源码)
查看>>
TCP详解
查看>>
Azure PowerShell (1) PowerShell入门
查看>>
ctl 里面pdef解说
查看>>
如何修改SQL Server 2000身份验证模式和系统管理员
查看>>
Using lnline XAML
查看>>
spring的作用及优势---第一个spring示例
查看>>
Cocos2d-X游戏开发之Windows7+VS2010环境搭建(亲测)
查看>>
Linux 添加环境变量和删除环境变量
查看>>
[LeetCode] Find Peak Element
查看>>
第一个618
查看>>
Java多线程程序设计详细解析
查看>>
Fixing an incomplete VM that’s stuck in the Creating state
查看>>
Metro UI(Win 8风格)页面设计小记
查看>>
一个例子来看C#泛型是如何登场的
查看>>
WPF快速入门系列(7)——深入解析WPF模板
查看>>
内存数据管理(第2版)
查看>>
DiskSerial & CPUInfo
查看>>