这篇文章主要介绍了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