Python程式設計從入門到實踐 第11章 測試總結

2021-10-25 14:39:14 字數 3437 閱讀 3518

在本章中,你講學習如何使用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迴圈和建立新元素的 合併成一行,並自動新增新元素。例...