• Python测试模块doctest


    面试被问到了却没有用过,很尴尬;今天看了一下,真的是一个很简单的测试模块

    方便起见,这里直接拿菜鸟教程的介绍和例子过来

    开发高质量软件的方法之一是为每一个函数开发测试代码,并且在开发过程中经常进行测试;

    doctest模块提供了一个工具,扫描模块并根据程序中内嵌的文档字符串执行测试;

    测试构造如同简单的将它的输出结果剪切并粘贴到文档字符串中;

    通过用户提供的例子,它强化了文档,允许 doctest 模块确认代码的结果是否与文档一致;

     1 def average(values):
     2     """Computes the arithmetic mean of a list of numbers.
     3 
     4     >>> print(average([20, 30, 70]))
     5     40.0
     6     """
     7     return sum(values) / len(values)
     8 
     9 import doctest
    10 doctest.testmod(verbose=True)   # doctest.testmod是测试模块,verbose默认是False,意思是出错才用提示;True,对错都有执行结果

    注意格式,上边代码的第三行需要是一个空行

    注:Python中的除法总是返回一个浮点数

    输出结果

     1 Trying:
     2     print(average([20, 30, 70]))
     3 Expecting:
     4     40.0
     5 ok
     6 Trying:
     7     print(average([90, 40, 20]))
     8 Expecting:
     9     50.0
    10 ok
    11 1 items had no tests:
    12     __main__
    13 1 items passed all tests:
    14    2 tests in __main__.average
    15 2 tests in 2 items.
    16 2 passed and 0 failed.
    17 Test passed.
    18 [Finished in 0.5s]

    可以看到16行,两个测试都通过了

  • 相关阅读:
    mysqldump --skip-tz-utc
    mysql 时间格式转换 DATE_FORMAT
    redis setinel 启动就 sdown
    virtualbox 1059m 布置1G虚拟机
    virtualbox 扩展磁盘空间
    tar gzip 压缩效率比较
    堆表 索引组织表
    内核参数 kernel.shmmax
    utf8mb4 字符集能正常存储表情
    源码包中带 boost 和 不带 boost
  • 原文地址:https://www.cnblogs.com/springionic/p/10711796.html
Copyright © 2020-2023  润新知