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

编写函数或者类时进行测试,确保代码正常工作

python模块unittest 提供了代码测试工具。

单元测试用于核实函数的某个方面没有问题;

测试用例是一组单元测试,这些单元测试一起核实函数在各种情况选的行为都符合要求

#Author:song

importunittestclassTestString(unittest.TestCase):deftest_upper(self):

self.assertEqual(‘Foo‘.upper(),‘FOO‘)deftest_isupper(self):

self.assertTrue(‘FOO‘.isupper())

self.assertFalse(‘Foo‘.isupper())deftest_split(self):

s= ‘hello world‘self.assertEqual(s.split(),[‘hello‘,‘world‘])

with self.assertRaises(TypeError):

s.split(2)if __name__=="__main__":

unittest.main()

unittest.main():使用它可以将一个单元测试模块变为可直接运行的测试脚本,main()方法使用TestLoader类来搜索所有包含在该模块中以“test”命名开头的测试方法,并自动执行

Python在unittest.TestCase类中提供了很多断言方法

常见几个

20180422190540062873.png

unittest.TestCase类包含方法setUp(),让我们只需创建这些对象一 次,并在每个测试方法中使用它们。

AnonymousSurvey.py

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 result:‘)for response inself.responses:print(‘-‘+response)

测试代码,

importunittestclassTestAnonymousSurvey(unittest.TestCase):defsetUp(self):

question= "What language did you first learn to speak?"self.my_survey=AnonymousSurvey(question)

self.responses= [‘English‘, ‘Spanish‘, ‘Mandarin‘]deftest_store_single_response(self): #测试单个答案会被妥善地存储

self.my_survey.store_response(self.responses[0])

self.assertIn(self.responses[0], self.my_survey.responses)deftest_store_three_responses(self): #测试多个答案被妥善存储for response inself.responses:

self.my_survey.store_response(response)for response inself.responses:

self.assertIn(response, self.my_survey.responses)

unittest.main()

方法setUp()做了两件事情:创建一个调查对象;创建一个答案列表。存储这两样东西的变量名包含前缀self(即存储在属性中),因此可在这个类的任何地方使用。这让两个测试方法都更简单,因为它们都不用创建调查对象和答案。方法setUp()让测试方法编写起来更容易,相比于在每个测试方法中都创 建实例并设置其属性,这要容易得多。

运行结果

..----------------------------------------------------------------------Ran2 tests in0.000s

OK

运行测试用例时,每完成一个单元测试,Python都打印一个字符:测试通过时打印一个 句点;测试引发错误时打印一个E;测试导致断言失败时打印一个F。这就是你运行测试 用例时,在输出的第一行中看到的句点和字符数量各不相同的原因。如果测试用例包含 很多单元测试,需要运行很长时间,就可通过观察这些结果来获悉有多少个测试通过了

原文地址:https://www.cnblogs.com/master-song/p/8908433.html

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值