這篇文章主要介紹了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