python 测试实现方法
时间:2023-03-24 11:34:04
1)doctest
使用doctest是一种类似于命令行尝试的方式,用法很简单,如下
def f(n):
"""
>>> f(1)
1
>>> f(2)
2
"""
print(n)
if __name__ == '__main__':
import doctest
doctest.testmod()
应该来说是足够简单了,另外还有一种方式doctest.testfile(filename),就是把命令行的方式放在文件里进行测试。
2)unittest
unittest历史悠久,最早可以追溯到上世纪七八十年代了,C++,Java里也都有类似的实现,Python里的实现很简单。
unittest在python里主要的实现方式是TestCase,TestSuite。用法还是例子起步。
from widget import Widget
import unittest
# 执行测试的类
class WidgetTestCase(unittest.TestCase):
def setUp(self):
self.widget = Widget()
def tearDown(self):
self.widget.dispose()
self.widget = None
def testSize(self):
self.assertEqual(self.widget.getSize(), (40, 40))
def testResize(self):
self.widget.resize(100, 100)
self.assertEqual(self.widget.getSize(), (100, 100))
# 测试
if __name__ == "__main__":
# 构造测试集
suite = unittest.TestSuite()
suite.addTest(WidgetTestCase("testSize"))
suite.addTest(WidgetTestCase("testResize"))
# 执行测试
runner = unittest.TextTestRunner()
runner.run(suite)
简单的说,1>构造TestCase(测试用例),其中的setup和teardown负责预处理和善后工作。2>构造测试集,添加用例3>执行测试需要说明的是测试方法,在Python中有N多测试函数,主要的有:
TestCase.assert_(expr[, msg])
TestCase.failUnless(expr[, msg])
TestCase.assertTrue(expr[, msg])
TestCase.assertEqual(first, second[, msg])
TestCase.failUnlessEqual(first, second[, msg])
TestCase.assertNotEqual(first, second[, msg])
TestCase.failIfEqual(first, second[, msg])
TestCase.assertAlmostEqual(first, second[, places[, msg]])
TestCase.failUnlessAlmostEqual(first, second[, places[, msg]])
TestCase.assertNotAlmostEqual(first, second[, places[, msg]])
TestCase.failIfAlmostEqual(first, second[, places[, msg]])
TestCase.assertRaises(exception, callable, ...)
TestCase.failUnlessRaises(exception, callable, ...)
TestCase.failIf(expr[, msg])
TestCase.assertFalse(expr[, msg])
TestCase.fail([msg])


猜你喜欢
Python3.x和Python2.x的区别介绍
PDO::getAttribute讲解
用ASP对网页进行限制性的访问
1秒50万字!js实现关键词匹配

YOLOv5车牌识别实战教程(五)字符分割与识别

Python3多线程详解
python使用for循环和海龟绘图实现漂亮螺旋线

php连接不上mysql但mysql命令行操作正常的解决方法
eWebEditor_v280_Free_Final最好用的网页编辑器下载
Python机器学习应用之基于决策树算法的分类预测篇

探秘TensorFlow 和 NumPy 的 Broadcasting 机制

MySQL的索引原理以及查询优化详解

常用照片尺寸
vue中项目页面空白但不报错产生的原因及分析

Python中实现对Timestamp和Datetime及UTC时间之间的转换
微信小程序封装多张图片上传api代码实例
详细讲解如何为MySQL数据库添加新函数
Python二叉搜索树与双向链表转换实现方法
Flask和Django框架中自定义模型类的表名、父类相关问题分析
Python中常用的os操作汇总
