如何在Python中使用unittest實現(xiàn)單元測試?相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。
甘德網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)!從網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、自適應(yīng)網(wǎng)站建設(shè)等網(wǎng)站項目制作,到程序開發(fā),運營維護。創(chuàng)新互聯(lián)于2013年創(chuàng)立到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗和運維經(jīng)驗,來保證我們的工作的順利進行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)。python常用的庫:1.requesuts;2.scrapy;3.pillow;4.twisted;5.numpy;6.matplotlib;7.pygama;8.ipyhton等。
首先我們先編寫一個簡單的函數(shù),它接受姓、名、和中間名三個參數(shù),并返回完整的姓名:
names.py
def get_fullname(firstname,lastname,middel=''): '''創(chuàng)建全名''' if middel: full_name = firstname + ' ' + middel + ' ' + lastname return full_name.title() else: full_name = firstname + ' ' + lastname return full_name.title()
然后再當(dāng)前目錄下編寫調(diào)用函數(shù)程序
get_name.py
from names import get_fullname message = "Please input 'q' to quit." print(message) while True: first = input("Please input your firstname: ") if first == 'q': break last = input("Please input your lastname: ") if last == 'q': break middels = input("Please input your middel name or None: ") if last == 'q': break formant_name = get_fullname(first,last,middels) print("\tYour are fullname is: " + formant_name.title())
調(diào)用結(jié)果:
Please input 'q' to quit.
進程已結(jié)束,退出代碼0
Please input your firstname: xiao
Please input your lastname: peng
Please input your middel or None:
Your are fullname is: Xiao Peng
Please input your firstname: xiao
Please input your lastname: peng
Please input your middel or None: you
Your are fullname is: Xiao You Peng
Please input your firstname: q
創(chuàng)建測試程序
創(chuàng)建測試用例的語法需要一段時間才能習(xí)慣,但測試用例創(chuàng)建后,再針對函數(shù)的單元測試就很簡單了。先導(dǎo)入模塊unittest以及要測試的函數(shù),再創(chuàng)建一個繼承函數(shù)unittest.TestCase的類,
并編寫一系列方法對函數(shù)行為的不同方便進行測試。
下面介紹測試上面names.py函數(shù)是否能夠正確的獲取姓名:
Test_get_name.py
import unittest from names import get_fullname class NamesTestCase(unittest.TestCase): '''定義測試類''' def test_get_name2(self): '''測試2個字的名字''' formatied_name2 = get_fullname('xiao','pengyou') self.assertEqual(formatied_name2,'Xiao Pengyou') def test_get_name3(self): '''測試3個字的名字''' formatied_name3 = get_fullname('xiao','peng',middel='you') self.assertEqual(formatied_name3,'Xiao Peng You') if __name__ == '__init__': unittest.main()
測試結(jié)果:
Ran 2 tests in 0.034s
OK
兩個測試單元測試通過測試!
在當(dāng)前的大目錄下會生成一個測試報告,可以通過瀏覽器進行打開查看。
由圖可知,兩個測試通過,并顯示測試的時間?。?!
unittest.TestCase的各種斷言方法
unittest各種斷言方法
方 法 | 用 途 |
assertEqual(a,b) | 核實a == b |
assertNotEqual(a,b) | 核實a != b |
assertTrue(x) | 核實x為True |
assertFalse(x) | 核實x為False |
assertIn(item,list) | 核實item在list中 |
assertNotIn(item,list) | 核實item不在list中 |
看完上述內(nèi)容,你們掌握如何在Python中使用unittest實現(xiàn)單元測試的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)成都網(wǎng)站設(shè)計公司行業(yè)資訊頻道,感謝各位的閱讀!
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。