Python语言异常处理测试过程解析
作者:sowhat1943 发布时间:2022-10-30 01:29:05
标签:Python,异常,处理,测试
这篇文章主要介绍了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()
来源:https://www.cnblogs.com/gdy1993/p/12154049.html


猜你喜欢
- #!c:\python27\python.exe# -*- coding: utf-8 -*-import osimport refrom
- 关于Tensor的数据类型说明1. 32位浮点型:torch.FloatTensora=torch.Tensor( [[2,3],[4,8]
- 问:假如我的一个表里含有(a,b,c,d)和(a,b)形成组合键。我能在列值中写这个查询吗?例如: select a,c,d from my
- jQuery表单验证实例 / 包含用户名、密码、住址、邮箱验证如下图别忘了引入jQuery框架!!!话不多说直接先上jQuery部分代码:&
- 目的:在百度贴吧输入关键字和要查找的起始结束页,获取帖子里面楼主所发的图片思路:获取分页里面的帖子链接列表获取帖子里面楼主所发的图片链接列表
- 基本介绍pandas是Python数据挖掘、数据分析中常用的库。而DataFrame生成excel中的sheet表,以及在excel中增加s
- <form action="calscore.asp?action=do" met
- 目录全局中间件应用中间件路由中间件控制器中间件中间件传参6.0中间件分为系统中间件和应用中间件,系统中间件为核心框架内置的中间件,应用中间件
- 0.前言Telnet协议属于TCP/IP协议族里的一种,对于我们这些网络攻城狮来说,再熟悉不过了,常用于远程登陆到网络设备进行操作,但是,它
- 前言Tree一直是大家熟知的组件,做一些大型的后台管理系统都会用到。使用树组件可以完整的展现其中的层级关系,并具有展开收起选择等交互功能。效
- 作为一种常见的数据结构,缓冲区(Buffer)在计算机科学中有着广泛的应用。Go 语言标准库中提供了一个名为 bytes.Buffer 的缓
- 本文实例讲述了mysql索引基数概念与用法。分享给大家供大家参考,具体如下:Cardinality(索引基数)是mysql索引很重要的一个概
- --查询 SELECT tp.tp_id, tp.tpmc, tp.leveid, tp.tpdz, tp.jgm, tp.scsj, tp
- 在flask中可以像go和angular那样使用页面模版(template),可以将HTML页面显示进行模版化,通过参数传递与页面进行数据交
- 自定义图片生成词云图的多种方法有时候我们会根据具体的场景来结合图片展示词云,比如我分析的是美团评论,那么最好的展示方法就是利用美团的logo
- package dao;import org.hibernate.HibernateException;import org.hiberna
- python之循环遍历关于循环遍历大家都知道,不外乎for和while,今天我在这写点不一样的循环和遍历。在实践中有时会遇到删除列表中的元素
- MySQL数据库中如何修改root用户的密码呢?下面总结了修改root用户密码的一些方法1: 使用set password语句修改mysql
- 我就废话不多说了,直接上代码吧!import numpy as npimport torchimport torch.nn as nnimp
- 经常会有人问我, PHP的数组, 如果用foreach来访问, 遍历的顺序是固定的么? 以什么顺序遍历呢? 比如: <?php $ar