十一、Python测试代码

python编程-第十一节-测试代码-004 测试代码就像给程序做体检,今天我们就来给AnonymousSurvey类做个全面检查。 先来个简单的"单挑"测试,看看它能不能正确处理单个答案。test_survey.py 阅读详情

Python学习笔记

参考书目:《Python编程从入门到实践(第2版)》,[美] Eric Matthes,袁国忠译

十一、测试代码

1、测试函数

单元测试用于核实函数的某个方面没有问题。测试用例是一组单元测试,全覆盖的测试用例包含一整套的单元测试。

def get_formatted_name(first,last,middle=''):
    if middle:
        full_name = f"{first} {middle} {last}"
    else:    
        full_name = f"{first} {last}"
    return full_name.title()
import unittest

class NamesTestCase(unittest.TestCase):
    """测试name_function.py"""
    
    def test_first_last_name(self):  # 运行此test.py文件时,所有以test_打头的方法都将自动运行
        """测试是否能够正确处理姓名"""
        formatted_name = get_formatted_name('janis','joplin')
        self.assertEqual(formatted_name,'Janis Joplin')  # assertEqual:断言方法
    def test_first_middle_last_name(self):
        formatted_name = get_fomatted_name('janis','h','joplin')
        self.assertEqual(formatted_name,'Janis Joplin') 
if __name__ == '__main__':
	unittest.main()  # 在Jyputer中会报错,vscode里可以正常输出

Ran 2 tests in 0.000s

OK

2、测试类

常用的断言方法:assertEqual(a,b), assertNotEqual(a,b), assertTrue(x), assertFalse(x), assertIn(item,list), assertNotIn(item,list)

只能在继承了unittest.TestCase的类中使用。

class AnonymousSurvey:
    """收集匿名调查问卷的答案。"""
    def __init__(self, question):
        """存储一个问题,并为存储答案做准备。""" 
        self.question = question 
        self.responses = []
        
    def show_question(self):
        """显示调查问卷。"""
        print(self.question)
        
    def store_response(self, new_response):
        """存储单份调查答卷。"""
        self.responses.append(new_response)
        
    def show_results(self):
        """显示收集到的所有答卷。""" 
        print("Survey results:")
        for response in self.responses:
            print(f"- {response}")
1)
import unittest

class TestAnonymousSurvey(unittest.TestCase):
    """针对AnonymousSurvey类的测试"""
        
    def test_store_single_response(self):
        """测试单个答案会被妥善地储存"""
        question = "What language did you learn first?"
        my_survey = AnonymousSurvey(question)
        my_survey.store_response('English')
        self.assertIn('English',my_survey.responses)
        
    def test_store_three_respunses(self):
        """测试三个答案会被妥善地存储"""
        question = "What language did you learn first?"
        my_survey = AnonymousSurvey(question)
        responses = ['English','Chinese','Janpanese']
        for response in responses:
            my_survey.store_response(response)
        for response in responses:
            self.assertIn(response,my_survey.responses)
        
if __name__ == '__main__':
    unittest.main()

Ran 2 tests in 0.000s

OK

2)方法setUp(),可以创建答案一次,便在每个测试方法中使用

class TestAnonymousSurvey(unittest.TestCase):
    """针对AnonymousSurvey类的测试"""
    
    def setUp(self):
        """创建一个调查对象和一组答案,供使用的测试方法使用"""
        question = "What language did you learn first?"
        self.my_survey = AnonymousSurvey(question)
        self.responses = ['English','Chinese','Janpanese']
        
    def test_store_single_response(self):
        """测试单个答案会被妥善地储存"""
        self.my_survey.store_response(self.responses[0])
        self.assertIn(self.responses[0],self.my_survey.responses)
        
    def test_store_three_respunses(self):
        """测试三个答案会被妥善地存储"""
        for response in self.responses:
            self.my_survey.store_response(response)
        for response in self.responses:
            self.assertIn(response,self.my_survey.responses)
python编程-第十一节-测试代码-002 想象一下: 你兴冲冲地直接运行test_name_function.py,结果...什么也没发生! 这不是你的代码在罢工,而是它太有礼貌了——毕竟你都没叫测试函数出来表演。 这时候就该请出我们的测试大管家pytest了。 阅读详情

相关推荐

python编程-第十一节-测试代码-003

既然我们的`get_formatted_name()`已经能完美演奏"名+姓"这样的二重奏,是时候让它挑战更复杂的"名+中间名+姓"三重奏了! 就像莫扎特的全名"Wolfgang Amadeus Mozart"那样优雅。 让我们在`test_name_function.py`这个乐谱上谱写新的测试乐章:

欢迎来到测试猿的吐槽大会!这里没有鸡汤,只有段子。功能测试:在需求文档里找漏洞,在界面上玩大家来找茬。自动化测试:让代码替我加班,而我负责喝咖啡摸鱼。性能测试:给服务器施压,看它到底能扛几拳。全流程质量守护:从需求评审到上线,一路带刀护送。 979

Python编程:测试代码

Python入门级经典教程。

weixin_56051592的博客 2927

《Python从入门到实践》第十一章 测试代码

以修改函数代码的行为。"""一个可供给所有测试函数使用的AnonymousSurvey实例""""""测试单个答案会被妥善地存储""""""测试三个答案会被妥善存储"""当测试函数的一个形参与参与了装饰器@pytest.fixture的函数(夹具)同名时,将自动运行夹具,并将夹具返回的值传递给测试函数。在想要使用夹具时,可编写一个函数来生成供多个测试函数使用的资源,再对这个函数应用装饰器@pytest.fixture,并让使用该资源的每个测试函数都接受一个与函数同门的形参。

a_bear_in_Spring的博客 601

python-测试代码

python—测试代码

qq_61706112的博客 2324

python编程-第十一节-测试代码-001

各位亲爱的代码魔法师们,欢迎来到程序员的"照妖镜"世界! 在这里,我们将用测试这把"照妖镜"让所有bug现出原形。 别担心,这不是什么严肃的审判大会,而是一场充满欢乐的捉虫游戏。

欢迎来到测试猿的吐槽大会!这里没有鸡汤,只有段子。功能测试:在需求文档里找漏洞,在界面上玩大家来找茬。自动化测试:让代码替我加班,而我负责喝咖啡摸鱼。性能测试:给服务器施压,看它到底能扛几拳。全流程质量守护:从需求评审到上线,一路带刀护送。 809

Multisim实战:5分钟搞定一阶RC电路仿真(附示波器波形分析技巧)

本文通过Multisim软件,详细演示了如何快速搭建一阶RC电路并进行仿真分析。文章提供了从元件选取、电路连接、虚拟示波器设置到波形观测的完整流程,并重点分享了测量时间常数、区分电路响应类型等核心分析技巧,帮助电子工程初学者和爱好者高效掌握电路仿真与分析方法。

weixin_29175469的博客 183

Python--测试代码

在编写函数或类时,还可为其编写测试。通过测试,可确定代码⾯对 各种输⼊都能够按要求⼯作。

qq_62254095的博客 1041

矢量网络分析仪(矢网)组成和原理简介

一、概述 矢量网络分析仪是一种常见的射频测量仪器,主要用来测量高频器件、电路及系统的性能参数,如线性参数、非线性参数、变频参数等。 1.1 分类 矢量网络分析仪一般以频率来划分,截止频率越高,价格也越贵; 根据测试端口的数量可分为:双端口、 3 端口、 4 端口、 6 端口; 常见的厂家有:美国的安捷伦( Agilent)、德国的罗德与施瓦茨( R&S) , 国内的有南京普纳和中电 41 所。 1.2 常用功能 常用的测试器件有:功分器、合路器、滤波器、衰减器、天线、电缆、放大器、混频器、双工器、耦

大音希声 5万+

Python中的代码测试

Python中的测试——测试函数、测试类。

weixin_70673823的博客 1363

别再手动配IP了!保姆级教程:用Cisco Packet Tracer搞定DHCP服务器配置(附实验抓包分析)

本文提供了一份详细的Cisco Packet Tracer DHCP服务器配置教程,帮助用户告别手动分配IP的繁琐过程。通过构建多子网实验环境,逐步指导DHCP地址池设置、客户端测试及协议分析,并分享常见问题排查技巧,让网络配置更高效、更智能。

weixin_42535461的博客 340

R语言基础之R语言入门

R语言最初是由新西兰奥克兰大学统计系的教授Ross Ihaka和Robert Gentleman在S语言基础上开发完成的。是一门解释性语言。在我看来R语言是一门数学性极强的语言,或者说这是一门为数学而生的语言,因为其具有极其出色的计算与统计分析能力...

weixin_46912400的博客 5万+

python基础(十一)【测试代码】

下一个小时,或者,下半个小时,就是你的未来。你要怎么度过? 一、流程梳理 1、测试代码首先要引入一个叫作“unittest”的包, 2、测试文件的名字一定要让人能一看就知道是测试哪个文件的。 3、在测试文件中,引入要测试的那个函数。、 4、创建一个类,类名最好能表示出你测试的是哪个函数,一般是xxxTestCase。 5、创建的这个类必须继承 unittest.TestCase 6、运行测试类时,所有以test_打头的方法都将自动运行。 举例: name_function.py ...

纸城的博客 609

vrep小车避障算法_V-REP 多车道巡线与避障

任务概要在给定的赛道中,实现多车道的避障和视觉巡线。避障算法没有限定,可使用人工势场、RRT等路径规划算法。车体大小、赛道信息以及参考资料在此处下载。完成情况已学习并能初步使用 V-REP Python Remote API 接口,实现 Python 与 V-REP 的功能交互。已实现基于视觉传感器的多车道巡线功能。已实现基于视觉传感器的多车道避障功能。V-REP Python Remote AP...

weixin_39692037的博客 1835

Python3 学习笔记(十一)测试代码

Python3 学习笔记(十一)测试代码 参考书籍《Python编程:从入门到实践》【美】Eric Matthes 编写一个函数,它接受两个形参:一个城市名和一个国家名。这个函数返回一个格式为City, Country 的字符串,如Santiago, Chile 。将这个函数存储在一个名为city_functions.py的模块中。创建一个名为test_cities.py的程序,对刚编写的函数...

究极死胖兽的博客 1026

YOLOv13添加轻量化的EMA模块Faster_EMA,轻量又涨点!map50提升4.56个点,召回率提升9.66!

本文介绍了YOLOv13模型的优化移植方法,通过添加Faster_EMA模块和超参数调整,使模型性能显著提升。主要修改包括:1) 创建新的模型配置文件yolov13-Faster_EMA.yaml;2) 在tasks.py中添加新模块;3) 修改__init__.py和block.py文件,新增Partial_conv3和DropPath类。优化后模型mAP50提升4.56%,召回率提升9.66%,验证了改进方案的有效性。代码实现了局部卷积和随机深度等先进技术,为YOLO系列模型性能优化提供了新思路。

FJN110的博客 2605

ROSTCM6软件下载及语义网络分析详细操作教程(附网盘链接)

ROSTCM6是武汉大学沈阳教授研发编码的国内目前唯一的以辅助人文社会科学研究的大型免费社会计算平台。该软件可以实现微博分析、聊天分析、全网分析、网站分析、浏览分析、分词、词频统计、英文词频统计、流量分析、聚类分析等一系列文本分析。

m0_64336780的博客 4万+

python基础语法(十一)——测试代码

文章目录一、测试函数1.单元测试和测试用例2.可通过的测试3.不能通过的测试4.测试未通过时怎么办5.添加新测试二、测试类1.常用断言方法2.编写一个要测试的类3.使用方法SetUp( )测试 一、测试函数 我们可以在每次修改函数时测试函数的功能,但是太麻烦了,这里介绍python提供的一种自动测试函数输出的高效方式。 1.单元测试和测试用例 python标准库中的 unittest 提供了代码测试工具 单元测试: 用来核实函数的某个方面没有问题 测试用例: 是一组单元测试,用来核实函数在各种情形下

immortal5655的博客 282

vue2/3 - element表格组件el-table实现懒加载树型(上下级)数据、默认展开和隐藏层级,支持对表格进行修改|新增|删除,解决完成操作后树节点不刷新问题(提供示例代码,一键复制开箱即用

vue2,vue3,elementui,elementPlus,el-table,Table表格组件,表格懒加载数据,element table表格数中的树形结构懒加载,增加后数据不同步更新问题,el-table树形与el-tree树形结构的一键折叠与展开,elementui中el-tree懒加载数据 默认展开最外层节点,Element-plus Table组件树表结构默认展开一级目录,vue实现element table表格树形结构-使用懒加载时-解决子节点增删改后,不刷新子节点数据问题,解决el-tre

✅ 精选推荐文章 1万+

Python从入门到实践——第十一章 测试代码

如何使用模块unittest中的工具来为函数和类编写测试;如何编写继承unittest.TestCase的类,以及如何编写测试方法,以核实函数和类的行为符合预期;如何使用方法setUp()来根据类高效地创建实例并设置其属性,以便在类的所有测试方法中都可使用它们。

Welcome to my homepage 1029

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Python从入门到实践——第十一章 测试代码之【测试函数】

在软件开发过程中,编写测试是确保代码质量和可靠性的关键步骤。测试函数的作用在于验证代码的各个部分是否按照预期工作,以及在不同情况下是否能够正确处理输入。

Welcome to my homepage 748

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

《Python编程:从入门到实践》第十一章:测试代码

测试代码 一、测试函数 单元测试和测试用例 可通过的测试 不能通过的测试 测试未通过时怎么办 添加新测试 二、测试类 各种断言方法 一个要测试的类 测试AnonymousSurvey类 方法setUp() ...

weixin_45237889的博客 416

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Python第十一章测试代码笔记

**11.1测试函数 11.1.1单元测试和测试用例 11.1.2可通过的测试** (1)先导入模块unittest 以及要测试的函数, 再创建一个继承unittest.TestCase 的类 (2)子类包含的方法调用要测试的函数,方法名要以test开头,这样在运行程序时才会自动运行,并存储了测试返回的值 (3)使用unnittest类的功能:一个断言方法,核实返回的结果是否与期望值相一致,调用u...

yuyang_chen的博客 257

【Python 编程-从入门到实践】第十一章 测试代码

运行测试用例时,每完成一个单元测试,Python 都打印一个字符:测试通过时打印一个句点,测试引发错误时打印一个 E,而测试导致断言失败时则打印一个 F。因此,测试未通过时,不要修改测试,而应修复导致测试不能通过的代码:检查刚刚对函数所做的修改,找出导致函数行为不符合预期的修改。类的测试与函数的测试相似,你所做的大部分工作是测试类中方法的行为。这个版本应该能够正确处理包含中间名的姓名,但对其进行测试时,我们发现它不在能正确处理只有名和姓的姓名。的类,并编写一系列方法对函数行为的不同方面进行测试。

Goodenough的博客 245

Python编程 从入门到实践 第十一章 测试代码

【代码】Python编程 从入门到实践 第十一章 测试代码。

m0_70225616的博客 363

Python蟒蛇书学习笔记——第十一章 测试代码

本章主要提到如果使用Python模块unittest中的工具来测试代码,还将学习编写测试用例,可以学到测试通过和测试不通过时的表现,以及如何改进代码。还将学习如何测试函数和类,并将知道该为项目编写多少测试。...

m0_67453276的博客 403
上一篇: 十、Python文件,异常,JSON
下一篇: latex分栏后插入图片却不显示解决方法
xiaoadven
博客等级 码龄7年 1粉丝 12原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值