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 bsddb模块操作Berkeley DB数据库介绍
Apr 08 Python
使用Protocol Buffers的C语言拓展提速Python程序的示例
Apr 16 Python
介绍Python的@property装饰器的用法
Apr 28 Python
python高手之路python处理excel文件(方法汇总)
Jan 07 Python
Python获取文件所在目录和文件名的方法
Jan 12 Python
python2.7安装图文教程
Mar 13 Python
Python读取英文文件并记录每个单词出现次数后降序输出示例
Jun 28 Python
django的csrf实现过程详解
Jul 26 Python
在django-xadmin中APScheduler的启动初始化实例
Nov 15 Python
详解Python3中的 input() 函数
Mar 18 Python
Tensorflow全局设置可见GPU编号操作
Jun 30 Python
python palywright库基本使用
Jan 21 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 常用类汇总 推荐收藏
2010/05/13 PHP
PHP删除数组中空值的方法介绍
2014/04/14 PHP
php生成静态页面的简单示例
2014/04/17 PHP
Linux下创建nginx脚本-start、stop、reload…
2014/08/03 PHP
实现WordPress主题侧边栏切换功能的PHP脚本详解
2015/12/14 PHP
CodeIgniter控制器之业务逻辑实例分析
2016/01/20 PHP
深入探讨JavaScript、JQuery屏蔽网页鼠标右键菜单及禁止选择复制
2014/06/10 Javascript
jQuery中innerHeight()方法用法实例
2015/01/19 Javascript
JavaScript中常用的六种互动方法示例
2015/03/13 Javascript
js代码实现点击按钮出现60秒倒计时
2021/01/28 Javascript
javascript实现的左右无缝滚动效果
2016/09/19 Javascript
从零开始学习Node.js系列教程五:服务器监听方法示例
2017/04/13 Javascript
javascript 的变量、作用域和内存问题
2017/04/19 Javascript
自定义类似于jQuery UI Selectable 的Vue指令v-selectable
2017/08/23 jQuery
手动用webpack搭建第一个ReactApp的示例
2018/04/11 Javascript
vue中v-model的应用及使用详解
2018/06/27 Javascript
微信小程序实现红包功能(后端PHP实现逻辑)
2018/07/11 Javascript
[47:45]DOTA2-DPC中国联赛 正赛 Phoenix vs Dragon BO3 第一场 2月26日
2021/03/11 DOTA
Python 自动安装 Rising 杀毒软件
2009/04/24 Python
Python+tkinter使用80行代码实现一个计算器实例
2018/01/16 Python
python中itertools模块zip_longest函数详解
2018/06/12 Python
python生成器与迭代器详解
2019/01/01 Python
Python目录和文件处理总结详解
2019/09/02 Python
Python处理mysql特殊字符的问题
2020/03/02 Python
Python基于stuck实现scoket文件传输
2020/04/02 Python
Steiff台湾官网:德国金耳釦泰迪熊
2019/12/26 全球购物
创建精神文明单位实施方案
2014/03/08 职场文书
二年级评语大全
2014/04/23 职场文书
小学生个人先进事迹材料
2014/05/08 职场文书
公司投资建议书
2014/05/16 职场文书
星级党支部申报材料
2014/05/31 职场文书
幼儿园小班见习报告
2014/10/31 职场文书
Golang并发操作中常见的读写锁详析
2021/08/30 Golang
Mysql关于数据库是否应该使用外键约束详解说明
2021/10/24 MySQL
Redis之RedisTemplate配置方式(序列和反序列化)
2022/03/13 Redis
Tomcat安装使用及部署Web项目的3种方法汇总
2022/08/14 Servers