在本章中,你講學習如何使用python模組unittest中的工具來測試**。你將學習編寫測試用例,核實一系列輸入都將得到預期的輸出。你將看到測試通過了是什麼樣子,測試未通過是什麼樣子,還將知道測試未通過如何有助於改進**。你將學習如何測試函式和類,並將知道該為專案編寫多少個測試。
1. 單元測試:核實函式在某方面沒有問題
2. 測試用例:一組單元測試(涵蓋各種函式輸入)
3. 全覆蓋式測試用例:一整套單元測試(涵蓋函式各種使用凡是)
4. 測試函式的步驟:
注:執行test_name_function.py時,所有test_打頭的方法,自動執行
name_function.py
def get_formatted_name(first, last):
"""generate a neatly formatted full name."""
full_name = first + ' ' + last
return full_name.title()
test_name_function.py
import unittest
from name_function import get_formatted_name
class namestestcase(unittest.testcase):
def test_first_last_name(self):
"""能正確的處理像janis joplin這樣的名字嗎?"""
formatted_name = get_formatted_name('janis', 'joplin')
self.assertequal(formatted_name, "janis joplin")
if __name__ == '__main__':
unittest.main()
5. 斷言方法:檢查你認為應該滿足的條件是否確實滿足。預期和實際
6. 測試類的步驟
(1) 匯入unittest模組和要測試的類
(2) 建立測試類,並繼承unittest.testcase類
(3) "test_"打頭的測試方法,先建立乙個要測試的類的物件,再呼叫類中要測試的函式,然後呼叫斷言方法。
(4) unittest.main
survey.py
class anonymoussurvey():
"""收集匿名調查問卷的答案"""
def __init__(self, question):
"""儲存乙個問題,並為儲存答案做準備"""
self.question = question
self.responses =
def show_question(self):
"""顯示調查問卷"""
print(self.question)
def store_response(self, new_response):
"""儲存單份調查答卷"""
def show_results(self):
"""顯示收集到的所有答案"""
print("survey results:")
for response in self.responses:
print("-" + response)
test_survey.py
import unittest
from survey import anonymoussurvey
class testanonymoussurvey(unittest.testcase):
"""針對anonymoussurvey類的測試"""
def test_store_single_response(self):
"""測試單個答案會被妥善儲存"""
question = "what language did you first learn to speak?"
my_survey = anonymoussurvey(question)
my_survey.store_response('english')
self.assertin('english', my_survey.responses)
if __name__ == "__main__":
unittest.main
7. setup()
unittest.testcase類包含setup()方法,我們只需在setup()方法中建立一次物件,就可以在每個測試方法中使用它。
python首先執行setup()方法,再執行各個以「test_」打頭的方法
import unittest
from survey import anonymoussurvey
class testanonymoussurvey(unittest.testcase):
"""針對anonymoussurvey類的測試"""
def setup(self):
"""建立乙個調查物件和一組答案,供測試方法使用"""
question = "what language did you first learn to speak?"
self.my_survey = anonymoussurvey(question)
self.responses = ['english', 'spanish', 'mandarin']
def test_store_single_response(self):
"""測試單個答案會被妥善儲存"""
self.my_survey.store_response(self.responses[0])
self.assertin(self.responses[0], self.my_survey.responses)
def test_store_three_response(self):
"""測試三個答案會被妥善地儲存"""
for response in self.responses:
self.my_survey.store_response(response)
for response in self.responses:
self.assertin(response, self.my_survey.responses)
if __name__ == "__main__":
unittest.main()
Python 程式設計 從入門到實踐
1.官網安裝 3.環境配置 務必選中核取方塊add python to path 4.檢視 啟動python版本的命令 python 執行 print hello python world 5.終端執行x.py檔案 python x.py 7.檢視當前目錄中的所有檔案的命令 dir windows系...
python程式設計 從入門到實踐第3章
第三章 列表簡介 1.列表一般用 表示。2.索引從0而不是1開始。通過將索引指定為 1 可讓python返回最後乙個列表元素。4.可使用方法insert 向列表中插入新元素,insert 索引,元素 5.使用del語句根據索引刪除元素 6.方法pop 可刪除列表末尾的元素,並能再使用先前的列表 7....
python程式設計 從入門到實踐 第4章
第四章 操作列表 1.函式range 生成一系列的數字。2.可使用函式list 將range 的結果直接轉換為列表。如果將range 作為list 的引數,輸出將為乙個數字列表。例 numbers list range 1,6 3.列表解析將for迴圈和建立新元素的 合併成一行,並自動新增新元素。例...