python

超轻量级php框架startmvc

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

更新时间:2020-08-19 03:06:01 作者:startmvc
这篇文章主要介绍了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 异常 处理 测试