python怎么测试函数_说说在 Python 中如何测试函数

本文介绍了如何使用Python的unittest模块进行函数测试。通过创建单元测试用例,验证函数在不同条件下的行为是否符合预期。当函数更新后,测试用例可能会失败,此时需要根据错误信息调整测试代码或函数实现,确保所有测试都能通过。文章以一个实际的to_read()函数为例,展示了测试的整个过程,强调了测试在软件开发中的重要性。
摘要由CSDN通过智能技术生成

1952035-15b5a0db88652b9767876c5528471215

说说在 Python 中如何测试函数

Python 标准库中的 unittest 模块,提供了代码测试功能 。我们可以通过单元测试来验证所定义的函数是否符合预期。 一个函数一般会定义一组的单元测试(也叫做测试用例), 通过这些测试用例来判断该函数在各种边界条件下,函数的行为是否符合预期 。大型项目中要做到全覆盖测试比较困难,所以在最初阶段,只会针对代码的重要行为来编写测试用例。 而后,在项目的发展过程中,再逐步完善测试用例。

1 第一个单元测试

假设有这样的一个函数,它会返回格式化后的待读信息:def to_read(book_name):

"""想读的书"""

return "我想读《" + book_name + "》咯"

现在创建一个单元测试:import unittest

from book_function import to_read

class BookTestCase(unittest.TestCase):

"""测试 book_function.py"""

def test_read(self):

"""测试 read 函数"""

result = to_read("现代艺术150年 : 一个未完成的故事")

self.assertEqual(result, "我想读《现代艺术150年 : 一个未完成的故事》咯")

if __name__ == "__main__":

unittest.main()单元测试类必须继承自 unittest.TestCase 类, 这样 Python 才会运行我们编写的测试逻辑。

在此,使用了 unittest 类的断言方法 assertEqual。通过断言方法,我们就可以判定结果是否与期望结果相一致。

运行结果:

1952035-d81f0ee78db7c075f92f93327497afc0

说说在 Python 中如何测试函数

2 测试不通过

假设 to_read() 函数需要扩展,加入一个 book_type 参数,用于定义该书所归属的领域:

def to_read(book_name, book_type):

"""想读的书"""

content = "我想读《" + book_name + "》咯,"

content += "它属于" + book_type + "领域"

return content

这时,如果再次运行之前编写好的单元测试用例,就会抛出异常:

1952035-9451c97bcd6e5e2e79168fbc40566843

说说在 Python 中如何测试函数

第一行 FAILED,表示没有完全通过测试,errors 指出了出错个数。

测试用例一般会包含多个单元测试,所以我们可以通过 Traceback 找到出错的单元测试,精确到行数。

发生测试不通过现象时,首先要做的是冷静,通过 Traceback ,找到问题所在,修改函数或者单元测试代码,以符合预期行为。

在这个示例中,我们尝试修改单元测试代码:def test_read(self):

"""测试 read 函数"""

result = to_read("现代艺术150年 : 一个未完成的故事","艺术")

self.assertEqual(result, "我想读《现代艺术150年 : 一个未完成的故事》咯,它属于艺术领域")

是不是测试通过啦 O(∩_∩)O哈哈~

请转发+私信回复:“学习”就可以拿到一份我为大家准备的Python学习资料!

内容由用户发布,不代表本站观点。如发现有害或侵权内容。请点击这里

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值