网络编程
位置:首页>> 网络编程>> Python编程>> Python语言异常处理测试过程解析

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

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com