【学习笔记】Python使用doctest编写高质量代码

前言

平日我们无论在debug还是查看某些源码时,里面或多或少会出现下图中方框中的注释。
请添加图片描述

我们可以把这些示例代码在Python的交互式环境下输入并执行,结果与文档中的示例代码显示的一致。这就是本文中的主角——doctestdoctest中文名字叫做文档测试。一句话来解释就是:

doctest 通过运行嵌入在文档中的示例代码片段并验证是否产生预期的结果来测试源代码。

它的工作原理是解析帮助文档以找到示例代码,运行之,然后将输出结果与预期值进行比较。

如何使用

使用方法很简单,在你编写的函数里面使用交互式会话创建示例,然后把示例复制粘贴到模块的文档字符串中。以下面的代码为列。

def add(a,b):
    """
    :param a:
    :param b:
    :return:
    >>> add(3,7)
    10
    >>> add(-100,306)
    206
    """
    return a+b

要运行测试用例,通过 -m 选项把 doctest 作为主程序。通常在测试运行时是不会产生输出结果的。
请添加图片描述

因此下面的示例包含了 -v 选项使输出结果更加详细。

  • 测试的样例都通过的情况
    请添加图片描述
  • 测试的样例存在问题(将代码中的206改为306)
    请添加图片描述

doctest的一个好处就是,可以验验证一下我们自己写的某个函数片段会不会存在问题,类似于你在写力扣的时候,自己想样例,来验证自己的程序是否正确。以上只是简单的说明与使用,更加复杂的功能请参考下面的文献。

doctest — 测试交互性的Python示例

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

gorgeous(๑>؂<๑)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值