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 相关文章推荐
Python+django实现文件下载
Jan 17 Python
Python简单实现安全开关文件的两种方式
Sep 19 Python
详解Python多线程
Nov 14 Python
基于python元祖与字典与集合的粗浅认识
Aug 23 Python
Python利用ElementTree模块处理XML的方法详解
Aug 31 Python
python实现人脸识别代码
Nov 08 Python
python抓取网页中链接的静态图片
Jan 29 Python
Python+selenium 获取一组元素属性值的实例
Jun 22 Python
python中break、continue 、exit() 、pass终止循环的区别详解
Jul 08 Python
Python模块汇总(常用第三方库)
Oct 07 Python
python通过nmap扫描在线设备并尝试AAA登录(实例代码)
Dec 30 Python
Python通过m3u8文件下载合并ts视频的操作
Apr 16 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自定义加密与解密程序实例
2014/12/31 PHP
php查看网页源代码的方法
2015/03/13 PHP
微信公众号开发之文本消息自动回复php代码
2016/08/08 PHP
PHP函数按引用传递参数及函数可选参数用法示例
2018/06/04 PHP
Js的MessageBox
2006/12/03 Javascript
jQuery 处理网页内容的实现代码
2010/02/15 Javascript
Visual Studio中js调试的方法图解
2014/06/30 Javascript
JavaScript实现随机替换图片的方法
2015/04/16 Javascript
JQuery实现可直接编辑的表格
2015/04/16 Javascript
jquery+html5时钟特效代码分享(可设置闹钟并且语音提醒)
2020/03/30 Javascript
jQuery+ajax+asp.net获取Json值的方法
2016/06/08 Javascript
JavaScript实现审核流程状态的动态显示进度条
2017/03/15 Javascript
Vuex模块化实现待办事项的状态管理
2017/03/15 Javascript
angularjs中的$eval方法详解
2017/04/24 Javascript
jQuery Ajax使用FormData上传文件和其他数据后端web.py获取
2017/06/11 jQuery
JS路由跳转的简单实现代码
2017/09/21 Javascript
PHP自动加载autoload和命名空间的应用小结
2017/12/01 Javascript
仿vue-cli搭建属于自己的脚手架的方法步骤
2019/04/17 Javascript
[03:39]这就是刀塔,我们是冠军!燃情短片讲述我们的DOTA故事
2019/07/02 DOTA
Python 使用指定的网卡发送HTTP请求的实例
2019/08/21 Python
Python 获取numpy.array索引值的实例
2019/12/06 Python
Python搭建Keras CNN模型破解网站验证码的实现
2020/04/07 Python
django 数据库返回queryset实现封装为字典
2020/05/19 Python
Python建造者模式案例运行原理解析
2020/06/29 Python
HTML5中Canvas与SVG的画图原理比较
2013/01/16 HTML / CSS
世界最大的私人旅行指南出版商:孤独星球
2016/08/23 全球购物
成品仓管员工作职责
2013/12/29 职场文书
顶岗实习接收函
2014/01/09 职场文书
大班开学家长寄语
2014/04/04 职场文书
实践单位评语
2014/04/26 职场文书
开票员岗位职责
2015/02/12 职场文书
哪类餐饮行业,最适合在高校创业?
2019/08/19 职场文书
Python 中的Sympy详细使用
2021/08/07 Python
MySQL利用UNION连接2个查询排序失效详解
2021/11/20 MySQL
浅谈css实现背景颜色半透明的两种方法
2021/12/06 HTML / CSS
MySQL池化框架学习接池自定义
2022/07/23 MySQL