Python语言异常处理测试过程解析


Posted in Python onJanuary 08, 2020

这篇文章主要介绍了Python语言异常处理测试过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

(一)异常处理

1.捕获所有异常

try:
  x = 5 / 0
except:
  print('程序有错误')

2.捕获特定异常

try:
  x = 5 / 0
except ZeroDivisionError as e:
  print('不能为0',e)
except:
  print('其他错误')
else:
  print('没有错误')
finally:
  print('关闭资源')

3.手动抛出异常

def method():
raise NotImplementedError('该方法还未被实现')

(二)测试

使用Python自带的unittest模块

example 1:测试某个函数

import unittest
from example import get_formatted_name

class NameTestCase(unittest.TestCase):
  def test_title_name(self):
    formatted_name = get_formatted_name('tom','lee')
    self.assertEqual(formatted_name,'Tom Lee')
if __name__ == '__main__':
  unittest.main()

example 2:测试某个类

class Coder:
  def __init__(self,name):
    self.name = name
    self.skills = []

  def mastering_skill(self,skill):
    self.skills.append(skill)

  def show_skills(self):
    print('掌握技能:')
    for skill in self.skills:
      print('-',skill)
import unittest
from coder import Coder

class CoderTestCase(unittest.TestCase):
  def setUp(self):
    self.c = Coder('Tom')
    self.c.mastering_skill('Python')
    self.c.mastering_skill('Java')
    
  def test_skill_in(self):
    self.assertIn("Python",self.c.skills)
    
  def tearDown(self):
    print('销毁')

if __name__ == '__main__':
  unittest.main()

常用的断言方法:

import unittest

person ={'name':'Tom','age':30}
numbers = [1,23,3,4,4,54]
s = 'hello world python'


class TestAssert(unittest.TestCase):
  def test_assert_method(self):
    self.assertEqual('Tom',person.get('name'))
    self.assertTrue('hello' in s)
    self.assertIn('hello',s)
    #self.assertEqual(3.3,1.1+2.2)
    self.assertAlmostEqual(3.3,1.1+2.2)
    #判断在内存中是否是同一个引用
    self.assertIs(True+1,2)
    self.assertIsNone(None)
    #判断是否是某个类型的实例
    self.assertIsInstance(numbers[0],int)
    #是否大于
    self.assertGreater(5,4)
if __name__ == '__main__':
  unittest.main()

 

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python3.2模拟实现webqq登录
Feb 15 Python
python万年历实现代码 含运行结果
May 20 Python
用python实现的线程池实例代码
Jan 06 Python
解决python中使用plot画图,图不显示的问题
Jul 04 Python
python实现年会抽奖程序
Jan 22 Python
Python列表(list)所有元素的同一操作解析
Aug 01 Python
Python 实例方法、类方法、静态方法的区别与作用
Aug 14 Python
python多线程分块读取文件
Aug 29 Python
Pytorch之卷积层的使用详解
Dec 31 Python
Python爬虫库requests获取响应内容、响应状态码、响应头
Jan 25 Python
keras实现VGG16 CIFAR10数据集方式
Jul 07 Python
Python OpenCV超详细讲解调整大小与图像操作的实现
Apr 02 Python
Pytorch在NLP中的简单应用详解
Jan 08 #Python
解析PyCharm Python运行权限问题
Jan 08 #Python
python读取ini配置的类封装代码实例
Jan 08 #Python
Python Des加密解密如何实现软件注册码机器码
Jan 08 #Python
Pytorch技巧:DataLoader的collate_fn参数使用详解
Jan 08 #Python
Pytorch DataLoader 变长数据处理方式
Jan 08 #Python
pytorch实现用CNN和LSTM对文本进行分类方式
Jan 08 #Python
You might like
php文件上传类完整实例
2016/05/14 PHP
Laravel的Auth验证Token验证使用自定义Redis的例子
2019/09/30 PHP
Dom加载让图片加载完再执行的脚本代码
2008/05/15 Javascript
JavaScript让IE浏览器event对象符合W3C DOM标准
2009/11/24 Javascript
Extjs列表详细信息窗口新建后自动加载解决方法
2010/04/02 Javascript
javascript中的return和闭包函数浅析
2014/06/06 Javascript
Jquery全选与反选点击执行一次的解决方案
2015/08/14 Javascript
jQuery zTree加载树形菜单功能
2016/02/25 Javascript
js表单验证实例讲解
2016/03/31 Javascript
jquery实现无刷新验证码的简单实例
2016/05/19 Javascript
基于d3.js实现实时刷新的折线图
2016/08/03 Javascript
深入理解选择框脚本[推荐]
2016/12/13 Javascript
jQuery遮罩层实例讲解
2017/05/11 jQuery
移动端手指放大缩小插件与js源码
2017/05/22 Javascript
Vue axios 中提交表单数据(含上传文件)
2017/07/06 Javascript
node vue项目开发之前后端分离实战记录
2017/12/13 Javascript
Vue.js上传图片到阿里云OSS存储的方法示例
2018/12/13 Javascript
解决layui 表单元素radio不显示渲染的问题
2019/09/04 Javascript
原生JavaScript实现日历功能代码实例(无引用Jq)
2019/09/23 Javascript
jQuery实现滑动星星评分效果(每日分享)
2019/11/13 jQuery
解决Matplotlib图表不能在Pycharm中显示的问题
2018/05/24 Python
Python之两种模式的生产者消费者模型详解
2018/10/26 Python
Python列表常见操作详解(获取,增加,删除,修改,排序等)
2019/02/18 Python
利用python实现在微信群刷屏的方法
2019/02/21 Python
解决django 新增加用户信息出现错误的问题
2019/07/28 Python
Windows+Anaconda3+PyTorch+PyCharm的安装教程图文详解
2020/04/03 Python
Python包和模块的分发详细介绍
2020/06/19 Python
使用OpenCV校准鱼眼镜头的方法
2020/11/26 Python
后勤人员自我鉴定
2013/10/20 职场文书
消防安全员岗位职责
2014/03/10 职场文书
3分钟英语演讲稿
2014/04/29 职场文书
2016自主招生校长推荐信范文
2015/03/23 职场文书
部门优秀员工推荐信
2015/03/24 职场文书
生死牛玉儒观后感
2015/06/11 职场文书
Golang二维切片初始化的实现
2021/04/08 Golang
Java9新特性之Module模块化编程示例演绎
2022/03/16 Java/Android