Python單元和文檔測試實例詳解
本文實例講述了Python單元和文檔測試。分享給大家供大家參考,具體如下:
單元和文檔測試
1、單元測試
單元測試就是用來對一個模塊、一個函數(shù)或者一個類來進行正確性的檢測工作。
1.若是單元測試通過,則證明測試的函數(shù)能夠正確的工作,
2.反之則證明要么函數(shù)有bug要么輸入不合法,總之我們需要修復(fù)我們的函數(shù)功能。
2、對函數(shù)進行單元測試
創(chuàng)建python文件MathFunc.py,內(nèi)容如下:
def mySum(x,y): return x + y def mySub(x,y) return x -y print(mySum(1,2))
創(chuàng)建python文件的text01.py,內(nèi)容如下:
import unittest from MathFunc import mySum, mySub #測試類 繼承自unittest.TestCase class Test(unittest.TestCase): #下面兩個方法存在的意義:假設(shè)需要連接數(shù)據(jù)庫,當測試完畢之后,需要斷開和數(shù)據(jù)庫的連接 def setUp(self): print("開始測試時自動調(diào)用") def tearDown(self): print("結(jié)束時自動調(diào)用") #測試相應(yīng)的函數(shù) #一般情況下,測試函數(shù)命名格式:text_需要被測試的函數(shù)名 def test_mySum(self): #斷言:對函數(shù)命名格式:text_需要被測試的函數(shù)名 self.assertEqual(mySum(1,2),3,"加法有誤") def test_mySub(self): self.asserEqual(mySub(2,1),1,"減法有誤") #當主程序運行的時候,開始進行單元測試 if __name__ == "__main__": unittest.main()
運行text01.py文件,發(fā)現(xiàn)正常,然后修改MathFunc.py文件中的內(nèi)容,可按照下面的方式修改。
def mySum(x,y): return x + y + 1 def mySub(x, y): return x - y print(mySub(1,2))
再次運行text01.py文件,會出現(xiàn)錯誤信息。
3、對類進行單元測試
先創(chuàng)建一個類文件person.py,內(nèi)容如下:
class Person(object): #構(gòu)造方法 def __init__(self, name, age): #給成員變量賦值 self.name = name self.age = age def getAge(self): return self.age
創(chuàng)建text02.py文件,進行類的單元測試,內(nèi)容如下:
import unittest from person import person class Test(unittest.TestCase): def test_init(self): p = Person('hanmeimei',20) self.asserEqual(p.name,"hanmeimei","屬性值有誤") def test_getAge(self): p = Person('hanmeimei',22) self.assertEqual(p.getAge(),p.age,"getAge函數(shù)有誤") if __name__ = "__main__": unittest.mian()
演示,運行text02.py文件,程序正常運行,修改person.py文件中的內(nèi)容,具體內(nèi)容如下:
class Person(object): #構(gòu)造方法 def __init__(self, name, age): #給成員變量賦值 self.name = name self.age = age def getAge(self): return self.age+1
再次運行會報錯
對類的單元測試:本質(zhì)上還是對方法的單元測試。
4、文檔測試
文檔測試的作用:可以提取注釋找那個的代碼執(zhí)行
doctest模塊可以提取注釋中的代碼執(zhí)行
doctest嚴格按照python的交互模式的輸入進行提取
import doctest def mySum(x,y): #對函數(shù)進行功能和使用說明 ''' 求兩個數(shù)的和 get The sum from x and y :param x:firstNum :param y:secondNum :return sum #注意有空格 example: >>> print(mySum(1,2)) 3 ''' return x + y print(mySum(1,2)) #進行文檔測試,在當前文件中進行即可 doctest.testmod()
注意:演示的時候,主要測試
example:
>>> print(mySum(1,2)) 3
關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python函數(shù)使用技巧總結(jié)》、《Python面向?qū)ο蟪绦蛟O(shè)計入門與進階教程》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python字符串操作技巧匯總》、《Python編碼操作技巧總結(jié)》及《Python入門與進階經(jīng)典教程》
希望本文所述對大家Python程序設(shè)計有所幫助。
相關(guān)文章
django drf框架中的user驗證以及JWT拓展的介紹
這篇文章主要介紹了django drf框架中的user驗證以及JWT拓展的介紹,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08Python數(shù)據(jù)類型轉(zhuǎn)換匯總
這篇文章主要給大家分享的是Python數(shù)據(jù)類型轉(zhuǎn)換匯總,int,float相互轉(zhuǎn)換、int,string相互轉(zhuǎn)換、float,string相互轉(zhuǎn)換、string,list相互轉(zhuǎn)換等常見內(nèi)容,需要的小伙伴可以參考一下2022-03-03淺談python已知元素,獲取元素索引(numpy,pandas)
今天小編就為大家分享一篇淺談python已知元素,獲取元素索引(numpy,pandas),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-11-11用Python實現(xiàn)數(shù)據(jù)篩選與匹配實例
大家好,本篇文章主要講的是用Python實現(xiàn)數(shù)據(jù)篩選與匹配實例,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下2022-02-02在django中查詢獲取數(shù)據(jù),get, filter,all(),values()操作
這篇文章主要介紹了在django中查詢獲取數(shù)據(jù),get, filter,all(),values()操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-08-08pytorch中torch.max和Tensor.view函數(shù)用法詳解
今天小編就為大家分享一篇pytorch中torch.max和Tensor.view函數(shù)用法詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-01-01