脚本之家,脚本语言编程技术及教程分享平台!
分类导航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服务器之家 - 脚本之家 - Python - Python语言异常处理测试过程解析

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

2020-05-04 12:02sowhat1943 Python

这篇文章主要介绍了Python语言异常处理测试过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

这篇文章主要介绍了Python语言异常处理测试过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

(一)异常处理

1.捕获所有异常

?
1
2
3
4
try:
  x = 5 / 0
except:
  print('程序有错误')

2.捕获特定异常

?
1
2
3
4
5
6
7
8
9
10
try:
  x = 5 / 0
except ZeroDivisionError as e:
  print('不能为0',e)
except:
  print('其他错误')
else:
  print('没有错误')
finally:
  print('关闭资源')

3.手动抛出异常

?
1
2
def method():
raise NotImplementedError('该方法还未被实现')

(二)测试

使用Python自带的unittest模块

example 1:测试某个函数

?
1
2
3
4
5
6
7
8
9
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:测试某个类

?
1
2
3
4
5
6
7
8
9
10
11
12
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)
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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()

常用的断言方法:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
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

延伸 · 阅读

精彩推荐