本文實例講述了Python單元測試方法。分享給大家供大家參考,具體如下:
Eric書中《Python編程從入門到實踐》中的一個例子。
《Python編程從入門到實踐》隨書源碼可至此下載:https://www.jb51.net/books/582019.html。
首先定義了一個測試函數:
namefunction.py
#-*- coding:cp936 -*-def get_formmed_name(first, last): """該函數根據姓和名生成一個完整的姓名""" full_name = first + ' ' + last return full_name.title()
然后編寫了一個測試該函數的模塊:
names.py
#-*- coding:cp936 -*-from name_function import get_formmed_name"""該文件用來測試姓名生成函數"""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中的函數可以實現其功能。
最后是單元測試和測試用例的編寫。
test_name_function.py
# coding:utf-8import unittestfrom name_function import get_formmed_nameclass 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的版本中直接調用書上的主函數unittest.main()
時程序無法通過,而改用以下調用方式即可
if __name__ == '__main__': unittest
通過對以上單元測試模塊分析:
1. 導入單元測試類unittest
2. 導入要測試的函數,本例為name_function模塊中的get_formatted_name()
函數
3. 創建一個繼承于unittest.TestCase的類
4. 在類中定義一系列方法對函數的行為進行不同方面的測試,需要注意的是一個測試用例應該只測試一個方面,測試目的和測試內容應很明確。主要是調用assertEqual、assertRaises等斷言方法判斷程序執行結果和預期值是否相符。
更多Python相關內容感興趣的讀者可查看本站專題:《Python入門與進階經典教程》、《Python字符串操作技巧匯總》、《Python列表(list)操作技巧總結》、《Python編碼操作技巧總結》、《Python數據結構與算法教程》、《Python函數使用技巧總結》及《Python文件與目錄操作技巧匯總》
希望本文所述對大家Python程序設計有所幫助。
新聞熱點
疑難解答