python测试代码与模块_python测试代码

前言:

编写函数或者类时,需要编写测试代码,来保证其的功能运行是否按预期的那样工作。在程序添加新的代码时,用来测试是否会破坏本身的功能。

我们使用python自带的unittest模块来测试代码。

编写函数:

def get_formatted_name(first,last,middle=''):"""生成整洁的姓名"""

ifmiddle:

full_name= first + ' '+ middle +' '+lastelse:

full_name= first + ' ' +lastreturn full_name.title()

编写测试:

importunittestfrom name_function importget_formatted_nameclassNameTestCase(unittest.TestCase):"""测试name_function.py"""

deftest_first_last_name(self):"""能够正确地处理像Janis Joplin这样的姓名吗?"""formatted_name= get_formatted_name('janis','joplin')

self.assertEqual(formatted_name,'Janis Joplin')deftest_first_last_middle_name(self):"""能够正确地处理像Wolfgang Amadeus Mozart这样的姓名吗?"""formatted_name= get_formatted_name('wolfgang','mozart','amadeus')

self.assertEqual(formatted_name,'Wolfgang Amadeus Mozart')

unittest.main()

编写类:

classAnonymousSurvey():"""收集匿名调查问卷的答案"""

def __init__(self, question):"""存储一个问题,并为存储答案做准备"""self.question=question

self.responses=[]defshow_question(self):"""显示调查问卷"""

print(self.question)defstore_response(self, new_response):"""存储单份调查答卷"""self.responses.append(new_response)defshow_results(self):"""显示收集到的所有答卷"""

print("Survey results")for response inself.responses:print('-'+ response)

编写测试:

importunittestfrom survey importAnonymousSurveyclassTestAnonymousSurvey(unittest.TestCase):"""针对AnonymousSurvey类的测试"""

deftest_store_single_response(self):"""测试三个答案会被妥善地存储"""question= "What language did you first learn to speak?"my_survey=AnonymousSurvey(question)

lists= ['English','China','Japanese']for s inlists:

my_survey.store_response(s)

self.assertIn(s, my_survey.responses)

unittest.main()

总结:

unittest模块不仅支持单元测试,在接口和功能测试也能直接套用其中的方法。编写unittest必须添加继承unittest.TestCase类,测试的函数必须以test*开头,以及使用unittest.mian方法来运行此测试模块。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值