這期內(nèi)容當中小編將會給大家?guī)碛嘘P(guān)怎么在Python中進行單元測試,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
成都創(chuàng)新互聯(lián)公司始終堅持【策劃先行,效果至上】的經(jīng)營理念,通過多達10多年累計超上千家客戶的網(wǎng)站建設(shè)總結(jié)了一套系統(tǒng)有效的推廣解決方案,現(xiàn)已廣泛運用于各行各業(yè)的客戶,其中包括:成都石涼亭等企業(yè),備受客戶贊揚。首先定義了一個測試函數(shù):
namefunction.py
#-*- coding:cp936 -*- def get_formmed_name(first, last): """該函數(shù)根據(jù)姓和名生成一個完整的姓名""" full_name = first + ' ' + last return full_name.title()
然后編寫了一個測試該函數(shù)的模塊:
names.py
#-*- coding:cp936 -*- from name_function import get_formmed_name """該文件用來測試姓名生成函數(shù)""" print "Enter 'q' to quit any time." while True: first = raw_input("\nEnter first name:") if first == 'q': break last = raw_input("Enter last name:") if last == 'q': break formatted_name = get_formmed_name(first,last) print "Formmated name:",formatted_name
通過測試,name_function中的函數(shù)可以實現(xiàn)其功能。
最后是單元測試和測試用例的編寫。
test_name_function.py
# coding:utf-8 import unittest from name_function import get_formmed_name class NamesTestCase(unittest.TestCase): """測試name_function.py""" def test_first_last_name(self): """能夠正確處理像Janis Joplin這樣的姓名嗎?""" formatted_name = get_formmed_name('janis','joplin') self.assertEqual(formatted_name,'Janis Joplin')
注意這個地方,我在Python 2.7的版本中直接調(diào)用書上的主函數(shù)unittest.main()
時程序無法通過,而改用以下調(diào)用方式即可
if __name__ == '__main__': unittest
通過對以上單元測試模塊分析:
1. 導入單元測試類unittest
2. 導入要測試的函數(shù),本例為name_function模塊中的get_formatted_name()
函數(shù)
3. 創(chuàng)建一個繼承于unittest.TestCase的類
4. 在類中定義一系列方法對函數(shù)的行為進行不同方面的測試,需要注意的是一個測試用例應該只測試一個方面,測試目的和測試內(nèi)容應很明確。主要是調(diào)用assertEqual、assertRaises等斷言方法判斷程序執(zhí)行結(jié)果和預期值是否相符。
上述就是小編為大家分享的怎么在Python中進行單元測試了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。