Python测试代码中使用重写时,哪些函数可以被子类重写,Python测试代码有什么用
当编写一个函数或类时,你也可以为它编写测试。通过测试,可以确定代码面对各种输入都能按要求工作。
Python标准库中的Unittest和测试用例模块UnitTest提供了代码测试工具。单元测试用于验证函数的某些方面没有问题;一个测试用例是一组单元测试,它们一起验证一个功能的行为是否满足各种情况下的需求。一个好的测试用例考虑了一个函数可能接收到的所有类型的输入,包括所有这些情况的测试。全覆盖测试用例包含一套完整的单元测试,覆盖所有可能的功能。
测试功能,
名称_功能. py
def get_formatted_name(first,Last):# Get all names full _ name=first Last return full _ name . title()通过测试用例test _ name _ function.py从name _ function导入unittest导入get_formatted_name测试类class names test case(unittest . test case):#必须继承unittest。TestCase类def test _ first _ last _ name(self):formatted _ name=get _ formatted _ name( janis , Joplin )self . assert equal(formatted _ name,詹尼斯乔普林)unittest.main()代码行unittest.main()让Python运行该文件中的测试。输出结果如下:
上面的输出表明,当给定一个包含名字和姓氏的名称时,函数GET _ FORMATED _ NAME()总能正确处理。修改get_formatted_name()后,再次运行它。
这里失败的测试是get_formatted_name()的新版本,它要求中间名由一个参数指定:
DEF _ FORMATED _ NAME (first,middle,last):# Get all names full _ NAME=first middle last return full _ NAME . title()再次运行测试用例输出:
类:前面介绍了为单个函数编写一个测试,下面,为一个类编写一个测试。许多程序中都要用到类,所以证明你的类能正确工作会很有帮助。
要测试的类的测试类似于函数的测试。——你的大部分工作是测试类中方法的行为,但也有一些不同。这里有一个要测试的类。
调查. py
class AnonymousSurvey():# Collect匿名问卷答案def __init__(self,Question):self . Question=Question self . responses=[]def Show _ Question(self . Question)def store _ response(self,New _ response):self . responses . append(New _ response)def Show _ result(self):# Show all answers print(调查结果:)for response in self . responses:print(-- response)为了证明anonymous survey类能够正常工作,我们编写了一个使用它的程序。
语言_调查. py
从调查导入AnonymousSurvey #定义一个问题并创建一个匿名调查对象问题=您最初学习说什么语言?My _ survey=匿名调查(问题)#显示问题并存储答案my _ survey.show _ question () print(随时输入 q 退出。\ n )而true:response=input( language:)if response== q :break My _ survey . store _ response(response)#显示调查结果打印( \ n感谢您的回答!)my_survey.show_results()输出结果:
测试AnonymousSurvey类编写下面的测试来验证AnonymousSurvey类行为的一个方面。
从调查导入unittest导入AnonymousSurvey类TestAnonymousSurvey(unittest。Test case):# Test def Test _ store _ single _ response(self)for anonymous survey class:question=你最先学会说什么语言?my _ survey=anonymous survey(question)responses=[英语,西班牙语,中文]for responses in responses:my _ survey . store _ response(response)for responses in responses:self . assertin(response,my _ survey . responses)unittest . main()测试结果:
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。