zoukankan      html  css  js  c++  java
  • 7.2.1 代码测试 doctest

      Python标准库 doctest 可以搜索程序中类似于交互式Python代码的文本片段,并运行这些交互式代码来验证是否符合预期结果和功能,常用于Python程序的模块测试。

      使用doctest模块测试Python代码。

    下面的代码演示了doctest模块的用法,定义了一个函数,预期功能为可对整数或实数相加,或连接两个字符串、列表、元组,或对两个集合求并集,并返回结果。

     1 def add(value1,value2):
     2     #下面三个引号之间是测试代码,doctest会搜索这些代码并执行
     3     #并且根据执行结果与预期结果匹配程度来测试代码是否正确
     4     '''
     5     return the addition of two numbers or the concatenation of two string/list/tuple
     6     >>> add(3,5)
     7     8
     8     >>> add(3.0,5.0)
     9     8.0
    10     >>> add([1,2],[3,4])
    11     [1,2,3,4]
    12     >>> add((1,),(2,3,4))
    13     (1,2,3,4)
    14     >>> add(1,[3])
    15     TypeError
    16     >>> add(1,'2')
    17     TypeError
    18     >>> add([1],(2))
    19     TypeError
    20     >>> add('1234',[1,2,3,4])
    21     TypeError
    22     >>> add({1,2,3},{3,4,5})
    23     {1,2,3,4,5}
    24     >>> add({1:1},{2:2})
    25     TypeError
    26     '''
    27 
    28     #下面是正式的功能代码
    29     if type(value1) not in (int,float,str,list,tuple,set):
    30         raise TypeError('value1 and value2 must be the type of int,float,str,list,tuple,or set')
    31 
    32     if type(value1) != type(value2):
    33         raise TypeError('value1 and value2 must be of the same type')
    34 
    35     if type(value1) == set:
    36         return value1 | value2
    37     else:
    38         return value1 + value2
    39 
    40 if __name__ == '__main__':
    41     import doctest
    42     doctest.testmod()
    43     print(add(3,5))        

    把上面的代码保存成Python程序文件doctest_demo.py,在IDLE中直接运行,如果函数功能完全符合预期功能要求就会输出正确的结果,如果有不符合预期结果的代码就会给出相应的提示。在命令行提示符环境中使用-v参数的方式执行,可以看到详细的测试过程。

  • 相关阅读:
    Git之GitFlow工作流
    auth
    rbac
    修改或删除windows上的git用户凭证信息
    Linux之shell备份数据库
    解决Navicat 连接服务器数据库报10060问题
    PHP框架学习思路
    shell之hello world
    Linux命令大全
    PHP 各个版本的区别
  • 原文地址:https://www.cnblogs.com/avention/p/8825158.html
Copyright © 2011-2022 走看看