这篇文章主要介绍了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语言中异常处理测试的示例分析”这篇文章对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,更多相关知识等着你来学习!
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。