Python中unittest用法实例


Posted in Python onSeptember 25, 2014

本文实例讲述了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.py
import random
import unittest

class 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 decorrator
def 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程序设计的学习有所帮助。

Python 相关文章推荐
浅述python中argsort()函数的实例用法
Mar 30 Python
Python3使用正则表达式爬取内涵段子示例
Apr 22 Python
Python socket实现多对多全双工通信的方法
Feb 13 Python
Django 拆分model和view的实现方法
Aug 16 Python
Django Admin中增加导出Excel功能过程解析
Sep 04 Python
Python实现socket非阻塞通讯功能示例
Nov 06 Python
Python 实现数组相减示例
Dec 27 Python
python PIL/cv2/base64相互转换实例
Jan 09 Python
tensorflow图像裁剪进行数据增强操作
Jun 30 Python
python map比for循环快在哪
Sep 21 Python
Python中使用Lambda函数的5种用法
Apr 01 Python
pytorch 中nn.Dropout的使用说明
May 20 Python
跟老齐学Python之赋值,简单也不简单
Sep 24 #Python
跟老齐学Python之深入变量和引用对象
Sep 24 #Python
Python greenlet实现原理和使用示例
Sep 24 #Python
跟老齐学Python之数据类型总结
Sep 24 #Python
跟老齐学Python之集合的关系
Sep 24 #Python
跟老齐学Python之集合(set)
Sep 24 #Python
跟老齐学Python之有点简约的元组
Sep 24 #Python
You might like
PHP IF ELSE简化/三元一次式的使用
2011/08/22 PHP
初品cakephp 入门基础
2012/02/16 PHP
基于php导出到Excel或CSV的详解(附utf8、gbk 编码转换)
2013/06/25 PHP
javascript之dhDataGrid Ver2.0.0代码
2007/07/01 Javascript
Javascript读取cookie函数代码
2010/10/16 Javascript
js动态创建表格,删除行列的小例子
2013/07/20 Javascript
js 获取页面高度和宽度兼容 ie firefox chrome等
2014/05/14 Javascript
JavaScript sup方法入门实例(把字符串显示为上标)
2014/10/20 Javascript
Javascript检查图片大小不要让大图片撑破页面
2014/11/04 Javascript
jQuery中ajax的get()方法用法实例
2014/12/26 Javascript
Bootstrap富文本组件wysiwyg数据保存到mysql的方法
2016/05/09 Javascript
Jquery实现遮罩层的简单实例(就是弹出DIV周围都灰色不能操作)
2016/07/14 Javascript
微信小程序 解析网页内容详解及实例
2017/02/22 Javascript
AngularJS实现动态添加Option的方法
2017/05/17 Javascript
JavaScript之promise_动力节点Java学院整理
2017/07/03 Javascript
vue项目tween方法实现返回顶部的示例代码
2018/03/02 Javascript
jquery.validate自定义验证用法实例分析【成功提示与择要提示】
2020/06/06 jQuery
vue设置全局访问接口API地址操作
2020/08/14 Javascript
[51:29]完美世界DOTA2联赛循环赛 Matador vs Forest BO2第一场 11.05
2020/11/05 DOTA
python使用socket连接远程服务器的方法
2015/04/29 Python
Python实现学生成绩管理系统
2020/04/05 Python
Python实现读取机器硬件信息的方法示例
2018/06/09 Python
面向初学者的Python编辑器Mu
2018/10/08 Python
Python谱减法语音降噪实例
2019/12/18 Python
详解pycharm连接不上mysql数据库的解决办法
2020/01/10 Python
python实现QQ邮箱发送邮件
2020/03/06 Python
美国背景检查、公共记录和人物搜索网站:BeenVerified
2018/02/25 全球购物
乌克兰在线药房:Аптека24
2019/10/30 全球购物
网络工程师面试(三木通信技术有限公司)
2013/06/05 面试题
安全检查验收制度
2014/01/12 职场文书
《第一次抱母亲》教学反思
2014/04/16 职场文书
校园主题婚礼活动策划方案
2014/09/15 职场文书
公司领导班子四风对照检查材料
2014/09/27 职场文书
司法局2014法制宣传日活动总结
2014/11/01 职场文书
2014年煤矿工作总结
2014/11/24 职场文书
2015年市场营销工作总结
2015/07/23 职场文书