1.測試函數
在編寫完代碼後進行對代碼測試是否有錯誤
2.pytho標準庫中的模塊unittest為代碼測試工具
例如:
name_function.py 模塊名
def get_formatted_name(first, last):
full_name = first + ' ' + last
return full_name.title()
test_name_function.py 模塊名
import unittest unittest是python標準庫中的函數不可更改但可以用as重新命名
調用函數unittest模塊
from name_function import get_formatted_name
從模塊mycar中調用get_formatted_name
class NamesTestCase(unittest.TestCase):
可先導入模塊unittest以及要測試的函數,再創建繼承unittest.TestCase的類
def test_first_last_name(self): 創建函數必須包含創建模塊名中的字樣例如現在的『test』
創建函數繼承unitte.TestCase的類
formatted_name = get_formatted_name('janis','joplin')
為函數賦值實參並傳遞給變量
self.assertEqual(formatted_name,'Janis Joplin')
assertEqual方法 測試formatted_name的值是否與『Janis Joplin』一樣
unittest.main()
當我們運行test_name_function.py模塊時,所有已test——打頭的方法都將自動運行
3. unittest Module中的斷言方法
方法 用途
asserEqual(a,b) 核實a == b
assertNotEqual(a,b) 核實a != b
asserTrue(x) 核實x為True
assertFalse(x) 核實x為False
assertIn(item,list) 核實item在list中
assertNotIn(item,list) 核實item不在list中
4.測試類
例如:
test_survey.py 模塊名
import unittest 調用方法unittest
from survey import AnonymousSurvey 從survey模塊中調用AnonymousSurvey類
class TestAnonmyousSurvey(unittest.TestCase): 創建類並繼承unittest.TestCase類
def test_store_single_response(self): 創建函數並賦值實例
question = "What language did you first learn to speak?" 字符串賦值變量
my_survey = AnonymousSurvey(question) 類AnonymousSurvey賦值question的值實例並傳遞給變量
self.assertIn('English',my_survey.responses) 用assertIn方法進行列表比較
unittest.main()
5.setUp()
你在TestCase類中包含了方法setUp(),Python將先運行
它,再運行各個以test_打頭的方法
def setUp(self):
question = "What language did you first learn to speak?"
self.my_survey = AnonymousSurvey(question)
self.responses = ['English', 'Spanish', 'Mandarin']