Python單元測試與測試用例簡析
本文實(shí)例講述了Python單元測試與測試用例。分享給大家供大家參考,具體如下:
單元測試與測試用例
簡介
測試用例是一組單元測試,這些單元測試一起核實(shí)函數(shù)在各種情形下的行為都符合要求
要為函數(shù)編寫測試用例,可先導(dǎo)入模塊 unittest 以及要測試的函數(shù),再創(chuàng)建一個(gè)繼承unittest.TestCase 的類,并編寫一系列方法對函數(shù)行為的不同方面進(jìn)行測試
創(chuàng)建實(shí)例(對比接收到的名和姓是否符合要求)
1.先創(chuàng)建個(gè)name_function.py的文件(文件名稱可以另?。?,接收名和姓并返回整潔的全名
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)建個(gè)test_name_function.py的文件,檢查name_function.py()在給定名和姓時(shí)能否正確地工作
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()
上述代碼思路:
- 導(dǎo)入模塊
unittest和要測試的函數(shù)get_formatted_name() - 創(chuàng)建一個(gè)名為
NamesTestCase的類(類的命名可任取,但最好讓它看起來與要測試的函數(shù)相關(guān),并包含字樣Test),用于包含一系列針對get_formatted_name()的單元測試。這個(gè)類必須繼承unittest.TestCase,這樣Python才知道如何運(yùn)行你編寫的測試 - NamesTestCase只包含一個(gè)方法,我將這個(gè)方法命名為
test_first_last_name(),我們運(yùn)行test_name_function.py時(shí),所有以test_打頭的方法都將自動運(yùn)行。在這個(gè)示例中,使用了實(shí)參‘liu'和‘wei'調(diào)用get_formatted_name(),并將結(jié)果存儲到變量formatted_name中 assertEquals()是unittest類最有用的功能之一:一個(gè)斷言方法。斷言方法用來核實(shí)得到的結(jié)果與期望的結(jié)果一致。self.assertEquals(formatted_name, 'Liu Wei')的意思是:將formatted_name的值同字符串 'Liu Wei'進(jìn)行比較- 代碼行
unittest.main()讓Python運(yùn)行這個(gè)文件中的測試。
運(yùn)行結(jié)果如下:
----------------------------------------------------------------------
Ran 1 test in 0.000sOK
第1句的句點(diǎn)表明有一個(gè)測試通過。接下來的一行指出Python運(yùn)行了一個(gè)測試,消耗的時(shí)間不到0.001秒。最后的OK表明該測試用例中的所有單元測試都通過了。
關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python函數(shù)使用技巧總結(jié)》、《Python面向?qū)ο蟪绦蛟O(shè)計(jì)入門與進(jìn)階教程》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python字符串操作技巧匯總》、《Python編碼操作技巧總結(jié)》及《Python入門與進(jìn)階經(jīng)典教程》
希望本文所述對大家Python程序設(shè)計(jì)有所幫助。
相關(guān)文章
Python?pytorch實(shí)現(xiàn)繪制一維熱力圖
熱力圖是非常特殊的一種圖,可以顯示不可點(diǎn)擊區(qū)域發(fā)生的事情,這篇文章主要為大家介紹了如何利用pytorch實(shí)現(xiàn)繪制一維熱力圖,感興趣的可以了解一下2023-05-05
openCV入門學(xué)習(xí)基礎(chǔ)教程第三篇
pencv是用于快速處理圖像處理、計(jì)算機(jī)視覺問題的工具,支持多種語言進(jìn)行開發(fā)如c++、python、java等,下面這篇文章主要給大家介紹了關(guān)于openCV入門學(xué)習(xí)基礎(chǔ)教程的相關(guān)資料,需要的朋友可以參考下2022-11-11
python 使用多線程創(chuàng)建一個(gè)Buffer緩存器的實(shí)現(xiàn)思路
這篇文章主要介紹了python 使用多線程創(chuàng)建一個(gè)Buffer緩存器的實(shí)現(xiàn)思路,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-07-07
python設(shè)置環(huán)境變量的幾種方法總結(jié)
這篇文章主要介紹了在Python中設(shè)置環(huán)境變量可以通過多種方式實(shí)現(xiàn),包括使用os.environ、os.putenv、setuptools以及在操作系統(tǒng)級別設(shè)置,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2025-01-01

