Python 单元测试

本篇为Python的单元测试的方法及示例

目录

概念

结果

示例

对函数进行测试

创建函数文件

创建测试文件

测试结果

对类进行测试

创建待测试类

创建测试文件

文档测试

创建函数

进行测试

总结


概念

用来对一个函数、一个类或者一个模块来进行正确性校验工作

结果

1.单元测试通过,说明我们测试的函数功能正常

2.单元测试不通过,说明函数功能有bug,或者测试条件输入有误

示例

对函数进行测试

创建函数文件

首先编写函数文件,在当前目录下创建 单元测试函数文件

示例如下:

# 两数相加
def mySum(num1, num2):return num1 + num2# 两数相减
def mySub(num1, num2):return num1 - num2

创建测试文件

接着在创建myTest文件进行测试,在当前目录下创建myTest文件。

示例如下:

import unittest
from 单元测试函数文件 import mySum
from 单元测试函数文件 import mySubclass Test(unittest.TestCase):def setUp(self):print('开始测试时自动调用')def tearDown(self):print('结束测试时自动调用')def test_mySum(self):self.assertEqual(mySum(1, 2), 3, '两数相加结果有误')def test_mySub(self):self.assertEqual(mySub(3, 1), 2, '两数相减结果有误')if __name__ == '__main__':unittest.main()

测试结果

运行测试文件,查看测试结果。

成功

失败

修改函数结果为一个错误返回后,提示如下:

 

对类进行测试

创建待测试类

创建person类,并设置类方法

示例如下:

class Person(object):def __init__(self, name, age):self.name = nameself.age = agedef get_age(self):return self.age

 

创建测试文件

在当前目录文件下,创建myTest文件对Person类中的函数进行测试。

示例如下:

import unittest
from Person import Personclass Test(unittest.TestCase):def test_init(self):per = Person('hello', 20)self.assertEqual(per.name, 'hello', '属性赋值有误')def test_get_age(self):per = Person('hai', 25)self.assertEqual(per.get_age(), per.age, 'get_age函数有误')if __name__ == '__main__':unittest.main()

测试结果与对函数进行单元测试相似,就不在截图示例了。

文档测试

创建函数

引入doctest库,创建两数相加函数。

并对函数增加注释,最后通过文档进行测试结果是否符合。

示例如下:

import doctest# doctest模块可以提取注释中的代码执行
# doctest严格按照python交互模式的输入提取def mySum(x, y):'''得到x与y两数之和:param x: 第一个数:param y: 第二个数:return: sumexample:>>> print(mySum(1, 2))3'''return x + y

注意:注释代码前需要有一个空格

进行测试

示例如下:

if __name__=='__main__':doctest.testmod(verbose=True)

效果如下:

总结

测试是一种必要的保障项目质量的有效方法。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/274139.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

加密 / MD5算法 /盐值

目录 加密的介绍 MD5算法 盐值 加密的介绍 加密介绍:在MySQL数据库中, 我们常常需要对密码, 身份证号, 手机号等敏感信息进行加密, 以保证数据的安全性。 如果使用明文存储, 当黑客入侵了数据库时, 就可以轻松获取到用户的相关信息, 从而对用户或者企业造成信息…

算法——哈希王

242.有效的字母异位词 力扣题目链接(opens new window) 给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。 示例 1: 输入: s "anagram", t "nagaram" 输出: true 示例 2: 输入: s "rat", t "car&qu…

【Consul】注册Consul服务时报错404

【Consul】注册Consul服务时报错404 大家好 我是寸铁👊 总结了一篇golang注册Consul服务时报错404✨ 喜欢的小伙伴可以点点关注 💝 问题背景 今天寸铁想注册一个服务到Consul服务中心,却发现报错了,错误码是404,下面和…

react中的useEffect的使用

目录 React的useEffect深度解析与实战应用 一、useEffect的基本使用 二、useEffect的依赖项数组 三、避免无限循环 四、使用清空函数进行清理 React的useEffect深度解析与实战应用 React Hooks 是 React 16.8 版本引入的新特性,它允许我们在不编写 class 的情况…

SQLiteC/C++接口详细介绍-sqlite3类(一)

上一篇:SQLiteC/C接口简介 下一篇:SQLiteC/C接口详细介绍(二) 引言: SQLite C/C 数据库接口是一个流行的SQLite库使用形式,它允许开发者在C和C代码中嵌入 SQLite 基本功能的解决方案。通过 SQLite C/C 数据…

Elasticsearch 通过索引阻塞实现数据保护深入解析

目录 前言 1、索引阻塞的种类 2、什么时候使用阻塞? 场景1:进行系统维护场景。 场景2:保护数据不被随意更改场景。 场景3:优化资源使用的场景。 场景4:遵守安全规则场景。 3、添加索引阻塞API 4、解除设置 AP…

吴恩达机器学习笔记 十八 制定一个性能评估标准 学习曲线 高偏差 高方差

一个模型的好坏的评估基准可以从下面几个方面考虑: 1.考虑人类在这个问题上的表现 2.对比竞争算法的表现 3.根据经验猜测 判断是高偏差还是高方差 训练样本数量越多,越难完美地拟合每个样本,因此 J_train 会逐渐增大一点点,但泛…

原创检测工具,高效了解文章质量

原创检测工具,高效了解文章质量!想要知道一篇文章的质量怎么样,我们可以通过了解文章的原创度高低来分析,那么文章的原创度高低我们又是如何来知晓的呢?那当然是用原创检测工具去查询出来的。虽然我们可以把文章内容放…

20240309web前端_第一周作业_豆瓣电影

作业四&#xff1a;豆瓣电影 成果展示&#xff1a; 完整代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0…

Word转PDF保持图片原有清晰度

目录 1、需要的软件 2、配置Acrobat PDFMaker 3、配置Acrobat Distiller 4、更改Acrobat PDFMaker中的首选项 5、将word转换成pdf 1、需要的软件 利用Adobe Acrobat DC工具。 打开word&#xff0c;选择Acrobat的插件&#xff0c;选择首选项。 如果没有出现Acrobat插件也…

C++的类与对象(三):构造函数、析构函数、对象的销毁顺序

目录 类的6个默认成员函数 构造函数 语法 特性 析构函数 特性 对象的销毁顺序​​​​​​​​​​​​​​ 类的6个默认成员函数 问题&#xff1a;一个什么成员都没的类叫做空类&#xff0c;空类中真的什么都没有吗&#xff1f; 基本概念&#xff1a;任何类在什么都不…

2024年最便宜的阿里云服务器购买图文教程,2核2G61元,2核4G99元

2024年&#xff0c;阿里云推出了多款价格非常便宜的云服务器和轻量应用服务器&#xff0c;其中轻量应用服务器2核2G3M带宽50G系统盘只要61元/1年&#xff0c;2核4G4M带宽60G系统盘只要165元/1年。云服务器2核2G3M带宽40G系统盘只要99元/1年&#xff0c;2核4G5M带宽80G系统盘只要…

功能测试转自动化测试好不好转型?

手工测试做了好多年&#xff0c;点点点成了每天必须做的事情。但是随着自动化测试趋势的日渐明显&#xff0c;以及受到薪资、技能的双重考验&#xff0c;掌握自动化测试成为了必备技能。 手工转自动化测试&#xff0c;不是一蹴而就的。“预先善其事&#xff0c;必先利其器”&a…

FTP,SFTP,FTPS,SSL,TSL简介,区别,联系,使用场景说明

文章目录 简介FTPFTPSSFTP加密场景选择FTPS还是SFTPFTP、SFTP、FTPS区别、联系和具体使用场景如何使用FTP、SFTP和FTPSSSLTLSSSL和TLS区别和联系&#xff0c;以及使用场景SSL和TLS技术上的区别一些问题隐式的TLS&#xff08;FTPS/SSL&#xff09;或者显式的TLS&#xff08;FTPS…

LeetCode 707. 设计链表 (JAVA)

1.题目 2. 思路分析 1.我们要设置一个虚拟头节点&#xff0c;因为这个虚拟头节点对于增加节点操作和删除节点操作都很方便。 2.仔细读题&#xff0c;题目中说链表中的节点下标是从0开始的。也就是说第一个节点下标为0。 3.增加节点和删除节点的操作我们都要获取到它前一个的节…

洗衣洗鞋店小程序对接水洗唛打印,一键预约,支付无忧

随着社会的进步和科技的发展&#xff0c;我们的生活幸福感与日俱增。为了让我们从琐碎中解脱出来&#xff0c;干洗店洗鞋店行业也日新月异。今天&#xff0c;我为大家推荐这款优秀的干洗店小程序系统&#xff0c;让您的洗衣洗鞋服务体验更上一层楼。 干洗店管理系统是一款专为洗…

HTML静态网页成品作业(HTML+CSS)——家乡漳州介绍设计制作(1个页面)

&#x1f389;不定期分享源码&#xff0c;关注不丢失哦 文章目录 一、作品介绍二、作品演示三、代码目录四、网站代码HTML部分代码 五、源码获取 一、作品介绍 &#x1f3f7;️本套采用HTMLCSS&#xff0c;未使用Javacsript代码&#xff0c;共有1个页面。 二、作品演示 三、代…

css clip-path polygon属性实现直角梯形

2024.3.8今天我学习了如何用css实现直角梯形的效果&#xff0c; 效果&#xff1a; 具体实现原理&#xff1a; 一、需要三个div&#xff1a; 外面一个大的div&#xff0c;里面左右两个小的div 我们需要先把第一个div变成直角梯形&#xff1a; 大概是这样&#xff0c;设置好之…

conda PackagesNotFoundError

参考&#xff1a;https://wenku.csdn.net/answer/3u2f0vgdaj 报错&#xff1a;Solving environment: failed PackagesNotFoundError: The following packages are not available from current channels: 解决方法 ##添加channels conda config --add channels anaconda conda …

【CV论文阅读】【计算机视觉中的Transformer应用综述】(1)

0.论文摘要 摘要——自然语言任务的Transformer model模型的惊人结果引起了视觉社区的兴趣&#xff0c;以研究它们在计算机视觉问题中的应用。在它们的显著优点中&#xff0c;与递归网络例如长短期记忆&#xff08;LSTM&#xff09;相比&#xff0c;Transformer能够模拟输入序…