当前位置: 首页 > news >正文

Python3完全新手小白的学习手册 12代码测试

文章目录

  • 使用pip安装pytest
    • 清华源使用
    • 安装pytest
  • 测试函数
    • 单元测试和测试用例

因为代码是人写的,只要有人参与的事物都会出现错误,所以每个程序员都必须经常测试自己的代码,先于用户发现自己的问题。

本章将学习pytest模块,如何使用pytest模块。pytest模块,不仅能帮助你快速而轻松地编写测试,而且能持续支持随项目增大而变得复杂的测试。

Python 默认不包含 pytest,因此你将学习如何安装外部库。

使用pip安装pytest

因为pip服务器在国外,使用默认pip源会很慢,所以这里推荐使用清华源安装,在国内的体验会比较快。因为阿里源的使用文档没有更新,使用方法有问题。所以这里推荐使用清华源。

清华源使用

临时使用

pip install -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple 包名或者模块名

复制中文前的内容,到系统终端让后+空格+包名或者模块名,就可以使用清华源下载pip模块或者包了。

这里并不推荐将清华源改为默认源,因为镜像源有同步延迟的问题,使用镜像源未必能保证是最新版本的模块。

安装pytest

使用清华源安装代码

pip install -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple pytest

只要复制上面的代码到系统终端中回车运行就可以安装pytest了

测试函数

这是一个普通方法,就是将被测试的方法。

def get_formatted_name(first, last):"""生成格式规范的姓名"""full_name = f"{first} {last}"return full_name.title()

使用上面那个方法的代码

from name_function import get_formatted_nameprint("输入q退出")
while True:first = input("请输入第一个名字")if first == "q":breaklast = input("请输入第二个名字")if last == "q":breakformatted_name = get_formatted_name(first, last)print(f"formatted_name name:{formatted_name}")

以上还没有开始设计单元测试的的内容,都还是使用常规的方式在进行测试。
使用方法进行测试函数。

单元测试和测试用例

测试文件的名称很重要,必须以 test_打头。当你让 pytest 运行测试时,它将查找以 test_打头的文件,并运行其中的所有测试。

test_name_function.py

from name_function import get_formatted_namedef test_first_name():formatted_name = get_formatted_name("Janis", "Joplin")assert formatted_name == 'Janis Joplin'

第一,测试函数必须以test_ 打头。在测试过程中,pytest 将找出并运行所有以 test_ 打头的函数。第二,测试函数的名称应该比典型的函数名更长,更具描述性。

断言(assertion)就是声称满足特定的条件:这里声称 formatted_name 的值为 ‘Janis Joplin’。

http://www.lryc.cn/news/582625.html

相关文章:

  • 7 种简单方法将三星文件传输到电脑
  • go入门 - day1 - 环境搭建
  • MATLAB 实现 SRCNN 图像超分辨率重建
  • Go与JS无缝协作:Goja引擎实战之错误处理最佳实践
  • 深度学习-多分类
  • 二分查找篇——搜索二维矩阵【LeetCode】遍历法
  • Mysql常用内置函数,复合查询及内外连接
  • 嘉立创黄山派下载watch ui demo 教程(sf32)
  • (电机03)分享FOC控制中SVPWM的输出关联硬件
  • [ESP32]VSCODE+ESP-IDF环境搭建及blink例程尝试(win10 win11均配置成功)
  • Sa-Token完全学习指南
  • npm 包 scheduler 介绍
  • C++STL-vector
  • 股票数据源对接技术指南:印度尼西亚、印度、韩国
  • 静态路由实验以及核心原理
  • ubuntu24.04安装NFS网络文件系统/ARM开发板NFS挂载
  • 香港风水(原生)林地的逻辑分类器
  • 香港站群服务器价格怎么样?
  • Android UI 组件系列(四):EditText 使用详解与输入限制
  • LabVIEW-GPRS 远程土壤监测
  • Unity开发如何解决iOS闪退问题
  • kotlin中的冷流和热流
  • 5 种备份和恢复安卓短信的方法
  • 理解STM32F103的中断优先级分组
  • C#,js如何对网页超文本内容按行拆分,选择第A-B个字符返回HTM?
  • day55 序列预测任务介绍
  • React Native安卓刘海屏适配终极方案:仅需修改 AndroidManifest.xml!
  • 鸿蒙分布式开发实战指南:让设备协同像操作本地一样简单
  • Jmeter的JDBC数据库连接
  • 基于springboot的非遗传承宣传平台