1. 程式人生 > 程式設計 >Python語言異常處理測試過程解析

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,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()

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。