Python基础学习——测试代码

本文介绍了Python的unittest模块用于代码测试的基础知识,包括单元测试、测试用例、断言方法、测试覆盖以及如何运行测试文件。通过unittest.TestCase创建测试类,使用setUp()方法准备测试环境,对函数和类进行详细的测试操作。测试未通过时,应检查并修复代码,而不是修改测试。unittest.TestCase提供了多种断言方法,如assertEqual(),用于验证函数和类的预期行为。
摘要由CSDN通过智能技术生成

测试代码模块

编写函数或类时,还可为其编写测试。通过测试,可确定代码面对各种输入都能够按要求的那样工作。在程序中添加新代码时,你也可以对其进行测试,确认它们不会破坏程序既有的行为。
使用Python模块unittest 中的工具来测试代码
【注意】:测试代码所在的类,必须继承unittest.TestCase继承类

(1)单元测试与测试用例
Python标准库中的模块unittest提供了代码测试工具。
1、单元测试用于核实函数的某个方面没有问题;
2、测试用例一组单元测试,这些单元测试一起核实函数在各种情形下的行为都符合要求。
良好的测试用例考虑到了函数可能收到的各种输入,包含针对所有这些情形的测试。
3、全覆盖式测试用例包含一整套单元测试,涵盖了各种可能的函数使用方式。
对于大型项目,要实现全覆盖可能很难。通常,最初只要针对代码的重要行为编写测试即可,等项目被广泛使用时再考虑全覆盖。(一般都做不到)

(2)可通过的测试
创建测试用例的语法需要一段时间才能习惯,但测试用例创建后,再添加针对函数的单元测试就很简单了。
【编写函数测试模块语法】
要为函数编写测试用例,可先导入模块unittest 以及要测试的函数,再创建一个继承unittest.TestCase 的类,并编写一系列方法对函数行为的不同方面进行测试。

import unittest #导入测试模块
from name_function import get_formatted_name 
class NamesTestCase(unittest.TestCase): #必须继承unittest.TestCase类
	"""测试name_function.py"""
	def test_first_last_name(self): # 所有以test打头的方法都将被Python自动执行(测试类中,继承unittest.TestCase的类表示测试类)
	"""能够正确地处理像Janis Joplin这样的姓名吗?"""
	formatted_name = get_formatted_name('janis', 'joplin')#需测试的函数(自定义函数)得到的结果
	self.assertEqual(formatted_name, 'Janis Joplin') #调用unittest 的方法assertEqual()   断言方法  
#将自己的函数得出的解果与正确结果进行比较,若正确,则输出ok,反之输出error
unittest.main()#运行测试代码

(3)断言方法
使用了unittest 类最有用的功能之一:一个断言方法。断言方法用来核实得到的结果是否与期望的结果一致,即检查你认为应该满足的条件是否确实满足。
例如:

self.assertEqual(formatted_name, ‘Janis Joplin’)
我们调用unittest 的方法assertEqual() ,并向它传递formatted_name 和’Janis Joplin’ 。代码行self.assertEqual(formatted_name, ‘Janis Joplin’) 的意思是 说:“将formatted_name 的值同字符串’Janis Joplin’ 进行比较。

(4)重复进行测试
修改自己的函数,既可实现重复测试

(5)运行测试文件
代码行unittest.main()让Python运行这个文件中的测试代码。

A、通过测试结果如下:

.  
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值