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

yipeiwu_com6年前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()

 

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

详解Python3 pandas.merge用法

详解Python3 pandas.merge用法

摘要 数据分析与建模的时候大部分时间在数据准备上,包括对数据的加载、清理、转换以及重塑。pandas提供了一组高级的、灵活的、高效的核心函数,能够轻松的将数据规整化。这节主要对panda...

python定时器(Timer)用法简单实例

本文实例讲述了python定时器(Timer)用法。分享给大家供大家参考。具体如下: # encoding: UTF-8 import threading #Timer(定时器)是T...

浅谈python中对于json写入txt文件的编码问题

最近一直在研究python+selenium+beautifulsoup的爬虫,但是存入数据库还有写入txt文件里面的时候一直都是unicode编码的格式。 接下来就是各种翻阅文档,查找...

Python 用三行代码提取PDF表格数据

Python 用三行代码提取PDF表格数据

从 PDF 表格中获取数据是一项痛苦的工作。不久前,一位开发者提供了一个名为 Camelot 的工具,使用三行代码就能从 PDF 文件中提取表格数据。 PDF 文件是一种非常常用的文件格...

python如何查看微信消息撤回

python如何查看微信消息撤回

本文为大家分享了python查看微信消息撤回的具体代码,供大家参考,具体内容如下 1.安装itchat itchat是一个开源的python微信库,支持发送消息、图片、视频、地图、名片、...