香港云主机最佳企业级服务商!

ADSL拨号VPS包含了中国大陆(联通,移动,电信,)

中国香港,国外拨号VPS。

当前位置:云主机 > python >

电信ADSL拨号VPS
联通ADSL拨号VPS
移动ADSL拨号VPS

Python中unittest用法实例


时间:2021-11-09 10:24 作者:admin610456


本文实例讲述了python/' target='_blank'>python中unittest的用法,分享给大家供大家参考。具体用法分析如下:

1. unittest module包含了编写运行unittest的功能,自定义的test class都要集成unitest.TestCase类,test method要以test开头,运行顺序根据test method的名字排序,特殊方法:
① setup():每个测试函数运行前运行
② teardown():每个测试函数运行完后执行
③ setUpClass():必须使用@classmethod 装饰器,所有test运行前运行一次
④ tearDownClass():必须使用@classmethod装饰器,所有test运行完后运行一次

2. 示例代码:

#文件名runtest.pyimport randomimport unittestclass TestSequenceFunctions(unittest.TestCase):  def setUp(self):    self.seq = list(range(10))  def test_shuffle(self):    # make sure the shuffled sequence does not lose any elements    random.shuffle(self.seq)    self.seq.sort()    self.assertEqual(self.seq, list(range(10)))    # should raise an exception for an immutable sequence    self.assertRaises(TypeError, random.shuffle, (1,2,3))  def test_choice(self):    element = random.choice(self.seq)    self.assertTrue(element in self.seq)  def test_sample(self):    with self.assertRaises(ValueError):      random.sample(self.seq, 20)    for element in random.sample(self.seq, 5):      self.assertTrue(element in self.seq)if __name__ == '__main__':  unittest.main()

3.运行方式:在命令行直接运行这个runtest.py

可以使用unitest.skip装饰器族跳过test method或者test class,这些装饰器包括:
① @unittest.skip(reason):无条件跳过测试,reason描述为什么跳过测试
② @unittest.skipif(conditition,reason):condititon为true时跳过测试
③ @unittest.skipunless(condition,reason):condition不是true时跳过测试

可以自定义skip decorator

#这是一个自定义的skip decorratordef skipUnlessHasattr(obj, attr):  if hasattr(obj, attr):    return lambda func: func  return unittest.skip("{!r} doesn't have {!r}".format(obj, attr))

skip decorator示例代码:

class MyTestCase(unittest.TestCase):  @unittest.skip("demonstrating skipping")  def test_nothing(self):    self.fail("shouldn't happen")  @unittest.skipIf(mylib.__version__ < (1, 3),           "not supported in this library version")  def test_format(self):    # Tests that work for only a certain version of the library.    pass  @unittest.skipUnless(sys.platform.startswith("win"), "requires Windows")  def test_windows_support(self):    # windows specific testing code    pass@unittest.skip("showing class skipping")class MySkippedTestCase(unittest.TestCase):  def test_not_run(self):    pass

4.expected failure:使用@unittest.expectedFailure装饰器,如果test失败了,这个test不计入失败的case数目

希望本文所述对大家Python程序设计的学习有所帮助。

(责任编辑:admin)






帮助中心
会员注册
找回密码
新闻中心
快捷通道
域名登录面板
虚机登录面板
云主机登录面板
关于我们
关于我们
联系我们
联系方式

售前咨询:17830004266(重庆移动)

企业QQ:383546523

《中华人民共和国工业和信息化部》 编号:ICP备00012341号

Copyright © 2002 -2018 香港云主机 版权所有
声明:香港云主机品牌标志、品牌吉祥物均已注册商标,版权所有,窃用必究

云官方微信

在线客服

  • 企业QQ: 点击这里给我发消息
  • 技术支持:383546523

  • 公司总台电话:17830004266(重庆移动)
  • 售前咨询热线:17830004266(重庆移动)