Python进阶丨错误、调试和测试 —— 单元测试

本文深入解析单元测试的概念,包括如何对模块、函数或类进行正确性检验,展示测试函数abs()的具体实例,以及以测试为驱动的开发模式如何确保程序模块的行为符合设计。同时,通过一个测试函数get_formatted_name()的编写和测试用例的实现,详细阐述了Python中单元测试的编写过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

单元测试

.

  • 描述

单元测试是用来对一个模块,一个函数或者一个类进行正确性检验的测试工作

测试函数abs()
a.输入正数,1、0.1、11.1,期待返回值与输入相同
b.输入负数,-1、-1.1,期待返回值与输入相反
c.输入0,期待返回0
d.输入非数值类型,期待抛出TypeError

如果单元测试通过,说明测试这个函数能够正常工作

  • 意义

以测试为驱动的开发模式最大好处就是确保一个程序模块的行为符合我们设计的测试用例。在将来修改的时候,可以极大程序保证该模块行为仍然是正确的

  • 测试函数

准备测试函数

# name_fucn.py
def get_formatted_name(first, last):
    full_name = first + ' ' + last
    return full_name.title()

编写测试用例

# test_name_func.py
import unittest
from name_func import get_formatted_name

class NmaesTestCase(unittest.TestCase):
   """测试name_func.py"""
   def test_first_last_name(self):
       formatted_name = get_formatted_name('janis', 'joplin')
       self.assertEqual(formatted_name, 'Janis Joplin')

unittest.mian()

a.导入模块unittest和要测试的函数get_formatted_name()
b.创建一个继承unittest.TestCase的类NamesTestCase,用于包含一系列针对测试函数的单元测试。
c.NamesTestCase包含一个方法test_first_last_name(),当我们运行test_name_func.py时,所有以test_开头的方法都将自动运行。
d.接下来调用unittest的断言方法assertEqual(),用以比较函数结果和正确结果,如果相等,则万事大吉,如果不相等就通知一下。

测试成功,输出结果

.
----------------------------------------------------------------------
Ran 1 test in 0.001s

OK

测试通过打印一个句点.
测试引发错误时打印一个E
测试导致断言失败时打印一个F

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值