Python unittest 测试输入(input)和输出(print)

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

测试输入输出的解决方法是:
将标准输入输出定向到一个StringIO类(python3是 io.StringIO)。

import unittest
import io
import sys

def 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()

原文地址:https://www.cnblogs.com/flipped/p/9721632.html

时间: 2024-10-09 00:09:29

Python unittest 测试输入(input)和输出(print)的相关文章

python unittest 测试所有相关单元测试

python unittest 测试所有相关单元测试 python -m unittest discover project_directory "ut_*.py" 原文地址:https://www.cnblogs.com/bingwork/p/9714318.html

Python unittest测试框架1(单线程顺序执行)

为了解决之前unittest测试中文件下的所有的测试用例全部执行并生成测试报告的问题. 方案如下: 目录结构 │  testlibmain.py │  ├─public │      HTMLTestRunner.py │      ├─result ├─test_1 │      test1.py │      test2.py │      ├─test_2 │      test1.py │      test2.py │      └─test_3         test1.py   

python 3 用户输入和格式化输出

# -*- coding:utf-8 -*- #用户输入 && 格式化输出 #getpass 模块是内置的,可以将输入的内容隐藏 import getpass username = input("username:") password = input("password:") age = int (input("age:")) job = input("job:") #print(type(age),type

python unittest测试框架

所有的用例都必须继承unittest.TestCase setUp:测试之前准备的工作放在前面,比如打开浏览器, tearDown:测试用例执行完要做的,如关闭浏览器 断言: #first_case.py#coding: utf-8 import unittest def div(a, b): return a / b # 1 / 2 = 1 class MyfirstTestCase(unittest.TestCase): def setUp(self): print 'run before

Python中的输入和输出

输入 input() #!/usr/bin/env python #-*- coding:utf-8 -*- username=input('请输入用户名: ') input()内置函数,返回字符串类型.如果输入的内容要作为其他类型使用,必须进行转换,如要转换为int,就要 int(要转换的标识符). 输出 print() 格式化输出 username='admin' password='123456' print('用户名为 %s ,密码为 %s' %(username,password))

Python基础练习r=input('半径r=:') 半径r=2 >>>areas=3.14*float(r)*float(r) >>>print('area:%s'%(area)) area:12.5

1.简单输入输出交互. input('please input your name:') please  input your name:xfy 'xfy' 2.用户输入两个数字,计算并输出两个数字之和:(尝试只用一行代码实现这个功能). n=input('输入第一个数字:') 输入第一个数字:2 m=input('输入第二个数字:') 输入第二个数字:4 print(int(n)+int(m)) 6.0 3.输入半径,计算圆的面积. r=input('r=') r=2 print('圆的面积:

python入门(输入、输出、if else 判断流、while循环、for循环)

# -*- coding:utf-8 -*-        -------- 申明字符编码集 注释:当行 -    # 多行 -    """ """ 或者 ''' '''  (在python中单引号双引号没有区别) 1. 输出 print ("hello word !") 2. 变量 定义编码:name = "hui" 使用编码:print ("name is",name)  (变量之

Python接口测试实战3(下)- unittest测试框架

如有任何学习问题,可以添加作者微信:lockingfree 课程目录 Python接口测试实战1(上)- 接口测试理论 Python接口测试实战1(下)- 接口测试工具的使用 Python接口测试实战2 - 使用Python发送请求 Python接口测试实战3(上)- Python操作数据库 Python接口测试实战3(下)- unittest测试框架 Python接口测试实战4(上) - 接口测试框架实战 Python接口测试实战4(下) - 框架完善:用例基类,用例标签,重新运行上次失败用例

python注释、输入格式化输出输出及数据类型

一.python的注释 1.python中的注释 注释:对代码的解释或者评论,注释仅仅是给人看的,python本身不识别. 2.注释的分类 2.1. 单行注释 # 2.2. 三引号(可以是三个单也可以是三个双) 二.输入 1.python3中的输入 关键字:input() python3中的input获取的用户输入统一全部存成字符串类型 1.2.python2中的输入 1.2.1.input() 需要你人为的声明input输入的是什么数据类型 错误示范: 正确示范:   1.2.2.raw_in