Python单元和文档测试实例详解
作者:微信1257309054 发布时间:2023-01-01 19:08:06
本文实例讲述了Python单元和文档测试。分享给大家供大家参考,具体如下:
单元和文档测试
1、单元测试
单元测试就是用来对一个模块、一个函数或者一个类来进行正确性的检测工作。
1.若是单元测试通过,则证明测试的函数能够正确的工作,
2.反之则证明要么函数有bug要么输入不合法,总之我们需要修复我们的函数功能。
2、对函数进行单元测试
创建python文件MathFunc.py,内容如下:
def mySum(x,y):
return x + y
def mySub(x,y)
return x -y
print(mySum(1,2))
创建python文件的text01.py,内容如下:
import unittest
from MathFunc import mySum, mySub
#测试类 继承自unittest.TestCase
class Test(unittest.TestCase):
#下面两个方法存在的意义:假设需要连接数据库,当测试完毕之后,需要断开和数据库的连接
def setUp(self):
print("开始测试时自动调用")
def tearDown(self):
print("结束时自动调用")
#测试相应的函数
#一般情况下,测试函数命名格式:text_需要被测试的函数名
def test_mySum(self):
#断言:对函数命名格式:text_需要被测试的函数名
self.assertEqual(mySum(1,2),3,"加法有误")
def test_mySub(self):
self.asserEqual(mySub(2,1),1,"减法有误")
#当主程序运行的时候,开始进行单元测试
if __name__ == "__main__":
unittest.main()
运行text01.py文件,发现正常,然后修改MathFunc.py文件中的内容,可按照下面的方式修改。
def mySum(x,y):
return x + y + 1
def mySub(x, y):
return x - y
print(mySub(1,2))
再次运行text01.py文件,会出现错误信息。
3、对类进行单元测试
先创建一个类文件person.py,内容如下:
class Person(object):
#构造方法
def __init__(self, name, age):
#给成员变量赋值
self.name = name
self.age = age
def getAge(self):
return self.age
创建text02.py文件,进行类的单元测试,内容如下:
import unittest
from person import person
class Test(unittest.TestCase):
def test_init(self):
p = Person('hanmeimei',20)
self.asserEqual(p.name,"hanmeimei","属性值有误")
def test_getAge(self):
p = Person('hanmeimei',22)
self.assertEqual(p.getAge(),p.age,"getAge函数有误")
if __name__ = "__main__":
unittest.mian()
演示,运行text02.py文件,程序正常运行,修改person.py文件中的内容,具体内容如下:
class Person(object):
#构造方法
def __init__(self, name, age):
#给成员变量赋值
self.name = name
self.age = age
def getAge(self):
return self.age+1
再次运行会报错
对类的单元测试:本质上还是对方法的单元测试。
4、文档测试
文档测试的作用:可以提取注释找那个的代码执行
doctest模块可以提取注释中的代码执行
doctest严格按照python的交互模式的输入进行提取
import doctest
def mySum(x,y):
#对函数进行功能和使用说明
'''
求两个数的和
get The sum from x and y
:param x:firstNum
:param y:secondNum
:return sum
#注意有空格
example:
>>> print(mySum(1,2))
3
'''
return x + y
print(mySum(1,2))
#进行文档测试,在当前文件中进行即可
doctest.testmod()
注意:演示的时候,主要测试
example:
>>> print(mySum(1,2))
3
关于Python相关内容感兴趣的读者可查看本站专题:《Python函数使用技巧总结》、《Python面向对象程序设计入门与进阶教程》、《Python数据结构与算法教程》、《Python字符串操作技巧汇总》、《Python编码操作技巧总结》及《Python入门与进阶经典教程》
希望本文所述对大家Python程序设计有所帮助。
来源:https://blog.csdn.net/lm_is_dc/article/details/80171907


猜你喜欢
- python中shape()函数shape函数是numpy.core.fromnumeric中的函数,它的功能是读取矩阵的长度。1、shap
- 问题描述: 有2个数组如下a = [3,3,3,4,4,4,5,6,7]b = [3,3,4,4]第1题:从数组a中删除所有在数组b中出现过
- 这几天开始学tensorflow,先来做一下学习记录 一.神经网络解决问题步骤: 1.提取问题中实体的特征向量作为神经网络的输入。也就是说要
- 上一文,介绍了vue.js动态添加、删除绑定的radio选项,本文介绍如何选中radio的某一项绑定的数据和上文的model是一致的,选中r
- 1.建表代码如下:-- Create table create table test ( dm1 char(3), dm2 char(3),
- 例子:#!/bin/perlprint "Please input an string and a number by order
- 前言关于 var、let 和 const 三个关键字的区别,是一个老生常谈的问题,也是经典的面试题。本篇文章将全面讲解三者的特性,以及它们之
- PyQt5是强大的GUI工具之一,通过其可以实现优秀的桌面应用程序。希望通过一个简单的登录页面可以让大家顺利入坑,如有不妥之处还请大佬指点改
- 1.找到缺失值导入数据集df=pd.read_csv("nba.csv")df.head(10)替换异常值(数据集中异常
- 最近做有关GPS轨迹上有关的东西,花费心思较多,对两个常用的函数总结一下,求距离和求方位角,比较精确,欢迎交流!1. 求两个经纬点的方位角,
- Python 定义了类型转换函数以将一种数据类型直接转换为另一种数据类型,这在日常和竞争性编程中很有用。本文旨在提供有关某些转换函数的信息。
- 需求在画布上用鼠标画图,可以画圆或矩形,按m键在两种模式下切换。左键按下时开始画图,移动到哪儿画到哪儿,左键释放时结束画图。实现思想用鼠标画
- Python反转二维数组的行和列代码如下:import numpy as nparr=np.arange(12).reshape(4,3)p
- 项目场景:postman通常需要传递各式各样的参数,这样的话,进行写参数比较头疼,不知怎么进行传参。解决方案:可以考虑将参数对象写成json
- 本文实例讲述了PHP实现的curl批量请求操作。分享给大家供大家参考,具体如下:<?php$ch = array();$res = a
- 什么是双端队列双端队列是与队列类似的有序集合。它有一前、一后两端,元素在其中保持自己的位置。与队列不同的是,双端队列对在哪一端添加和移除元素
- 每年的春节,都会有一些自己几乎没印象但父母就是很熟的亲戚,关系凌乱到你自己都说不清。今年趁着春节在家没事情干,正好之前知道有中国亲戚关系计算
- js延时提示框效果演示: 实现方法 移入显示,移出隐藏 移除延时隐藏,可以实现从第一个div移入第二个div,仍然可以显示<!DOCT
- function rss_locale_date ($fmt, $ts, $addTZOffset&
- 我的经历前几天有人问我这个问题。我说GET是用于获取数据的,POST,一般用于将数据发给服务器之用。这个答案好像并不是他想要的。于是他继续追