Python單元測試與測試用例簡析
本文實例講述了Python單元測試與測試用例。分享給大家供大家參考,具體如下:
單元測試與測試用例
簡介
測試用例是一組單元測試,這些單元測試一起核實函數(shù)在各種情形下的行為都符合要求
要為函數(shù)編寫測試用例,可先導入模塊 unittest 以及要測試的函數(shù),再創(chuàng)建一個繼承unittest.TestCase 的類,并編寫一系列方法對函數(shù)行為的不同方面進行測試
創(chuàng)建實例(對比接收到的名和姓是否符合要求)
1.先創(chuàng)建個name_function.py的文件(文件名稱可以另?。邮彰托詹⒎祷卣麧嵉娜?/p>
def get_formatted_name(first,last,middle=''): '''生成整潔的姓名''' if middle: full_name=first+' '+middle+' '+last else: full_name=first+' '+last return full_name.title()
2.再創(chuàng)建個test_name_function.py的文件,檢查name_function.py()在給定名和姓時能否正確地工作
import unittest from name_function import get_formatted_name class NamesTestCase(unittest.TestCase): """測試name_function.py""" def test_first_last_name(self): """能夠正確處理姓名么?""" formatted_name = get_formatted_name('liu','wei' ) self.assertEquals(formatted_name, 'Liu Wei') unittest.main()
上述代碼思路:
- 導入模塊
unittest
和要測試的函數(shù)get_formatted_name()
- 創(chuàng)建一個名為
NamesTestCase
的類(類的命名可任取,但最好讓它看起來與要測試的函數(shù)相關,并包含字樣Test),用于包含一系列針對get_formatted_name()
的單元測試。這個類必須繼承unittest.TestCase
,這樣Python才知道如何運行你編寫的測試 - NamesTestCase只包含一個方法,我將這個方法命名為
test_first_last_name()
,我們運行test_name_function.py
時,所有以test_打頭的方法都將自動運行。在這個示例中,使用了實參‘liu'和‘wei'調(diào)用get_formatted_name()
,并將結(jié)果存儲到變量formatted_name
中 assertEquals()
是unittest
類最有用的功能之一:一個斷言方法。斷言方法用來核實得到的結(jié)果與期望的結(jié)果一致。self.assertEquals(formatted_name, 'Liu Wei')
的意思是:將formatted_name
的值同字符串 'Liu Wei'進行比較- 代碼行
unittest.main()
讓Python運行這個文件中的測試。
運行結(jié)果如下:
----------------------------------------------------------------------
Ran 1 test in 0.000sOK
第1句的句點表明有一個測試通過。接下來的一行指出Python運行了一個測試,消耗的時間不到0.001秒。最后的OK表明該測試用例中的所有單元測試都通過了。
關于Python相關內(nèi)容感興趣的讀者可查看本站專題:《Python函數(shù)使用技巧總結(jié)》、《Python面向?qū)ο蟪绦蛟O計入門與進階教程》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python字符串操作技巧匯總》、《Python編碼操作技巧總結(jié)》及《Python入門與進階經(jīng)典教程》
希望本文所述對大家Python程序設計有所幫助。
相關文章
python實現(xiàn)定時任務的八種方式總結(jié)
在日常工作中,我們常常會用到需要周期性執(zhí)行的任務,下面這篇文章主要給大家介紹了關于python實現(xiàn)定時任務的八種方式,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下2023-01-01Python?Pipeline處理數(shù)據(jù)工作原理探究
如果你是一個Python開發(fā)者,你可能聽過"pipeline"這個術語,但?pipeline?到底是什么,它又有什么用呢?在這篇文章中,我們將探討?Python?中的?pipeline?概念,它們是如何工作的,以及它們?nèi)绾螏椭憔帉懜逦?、更高效的代碼2024-01-01分享python機器學習中應用所產(chǎn)生的聚類數(shù)據(jù)集方法
本文根據(jù) 機器學習中常用的聚類數(shù)據(jù)集生成方法 中的內(nèi)容進行編輯實驗和整理而得,有需要的朋友可以參考想,希望可以對大家在聚類數(shù)據(jù)方面有所幫助2021-08-08Python中Matplotlib圖像添加標簽的方法實現(xiàn)
本文主要介紹了Python中Matplotlib圖像添加標簽的方法實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-04-04