日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

python中使用 unittest.TestCase單元測試的用例詳解

瀏覽:25日期:2022-08-06 18:44:45
目錄單元測試和測試用例各種斷言方法函數測試 1.準備測試函數2.編寫一個能使用它的程序3.對函數進行單元測試類測試1.準備測試的類2.編寫一個能使用它的程序3.對類進行單元測試注意單元測試和測試用例

python標準庫中的模塊unittest提供了代碼測試工具。單元測試用于核實函數的莫個方面沒有問題;測試用例是一組單元測試,這些單元測試一起核實函數在各種情形下的行為都符合要求。良好的測試用例考慮到了函數可能收到的各種輸入,包含針對所有這些情形的測試。全覆蓋測試用例包含一整套單元測試,涵蓋了各種可能的函數使用方式。對于大型項目,要實現全覆蓋可能很難,通常,最初只要針對代碼的重要行為編寫測試即可,等項目被廣泛使用時再考慮全覆蓋。

各種斷言方法

python 在unittest.TestCase 中提高了很多斷言方法。

unittest Module中的斷言方法

方法 用途 assertEqual(a,b) 核實a == b assertNotEqual(a,b) 核實a != b assertTrue(x) 核實x為True assertFalse(x) 核實x為False assertIn(item,list) 核實ietm在list中 assertNotIn(item,list) 核實item不在list中 函數測試 1.準備測試函數

name_function.py

def get_formatted_name(first, last): ’’’生成整潔的姓名’’’ full_name = first + ’ ’ + last return full_name.title()2.編寫一個能使用它的程序

nams.py

from name_function import get_formatted_nameprint('Enter ’q’ at any time to quit.')while True: first = input('nPlease give me a first name: ') if first == ’q’:break last = input('Please give me a last name: ') if last == ’q’:break formatted_name = get_formatted_name(first, last) print('tNeatly formatted name: ' + formatted_name + ’.’)3.對函數進行單元測試

test_name_function.py

import unittestfrom unittest import TestCasefrom name_function import get_formatted_nameclass NamesTestCase(TestCase): ’’’測試name_function.py’’’ def test_first_last_name(self):’’’能夠正確地處理象 Janis Joplin這樣的姓名嗎?’’’formtted_name = get_formatted_name(’janis’, ’joplin’)self.assertEqual(formtted_name, ’Janis Joplin’)# 執(zhí)行unittest.main()

python test_name_function.py

python中使用 unittest.TestCase單元測試的用例詳解

第一行的句點 表示測試通過了,接下來的一行指出python運行了一個測試,消耗的時間不到0.001秒,最后的OK表示改測試用例中的所有測試單元都通過了。

類測試1.準備測試的類

survey.py

class AnonmousSurvey(): '''收集匿名調查問卷的答案''' def __init__(self, question):'''存儲一個問題,并為存儲答案做準備'''self.question = questionself.responses = [] def show_question(self):'''顯示調查問卷'''print(self.question) def store_response(self, new_response):'''存儲單份調查答卷'''self.responses.append(new_response) def show_results(self):'''顯示收集到的所有答卷'''print('Survey results')for response in self.responses: print(’- ’ + response)2.編寫一個能使用它的程序

language_survey.py

from survey import AnonmousSurvey# 定義一個問題,并創(chuàng)建一個表示調查的AnonymousSurvey對象question = 'What language did you first learn to speak?'my_survey = AnonmousSurvey(question)# 顯示問題并存儲答案my_survey.show_question()print('Enter ’q’ at any time to quit.n')while True: response = input('Language: ') if response == ’q’:break my_survey.store_response(response)# 顯示調查結果print('nThank you to everyoune who participated in the survey!')my_survey.show_results()3.對類進行單元測試

import unittestfrom survey import AnonmousSurveyclass TestAnonmousSurvey(unittest.TestCase): '''針對AnonymousSurvey類的測試''' def test_store_single_response(self):'''測試單個答案會被妥善地存儲'''question = 'What language did you first learn to speak?'my_survey = AnonmousSurvey(question)my_survey.store_response(’English’)self.assertIn(’English’, my_survey.responses) def test_store_three_responses(self):'''測試多個答案是否會被存儲'''question = 'What language did you first learn to speak?'my_survey = AnonmousSurvey(question)responses = ['English', 'Chinses', 'Japan']for response in responses: my_survey.store_response(response)for response in responses: self.assertIn(response, my_survey.responses)unittest.main()

python中使用 unittest.TestCase單元測試的用例詳解

可以看到對類的單元測試也是成功的。雖然成功了,但是做法不是很好,測試有些重復了,下面使用unittest的另一項功能來提高它們的效率

方法 setUP()

如果你在TestCase類中包含方法setUP(),python將先運行它,在運行各個以test_開頭的方法。

test_survey_setup.py

import unittestfrom survey import AnonmousSurveyclass TestAnonmousSurvey(unittest.TestCase): '''針對AnonymousSurvey類的測試''' def setUp(self):'''創(chuàng)建一個調查對象和一組答案,供使用的測試方法使用'''question = 'What language did you first learn to speak?'self.my_survey = AnonmousSurvey(question)self.responses = ['English', 'Chinses', 'Japan'] 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_responses(self):'''測試多個答案是否會被存儲'''for response in self.responses: self.my_survey.store_response(response)for response in self.responses: self.assertIn(response, self.my_survey.responses)unittest.main()

測試自己編寫的類時,方法setUP()讓測試方法編寫起來更容易:可以在setUP()方法中創(chuàng)建一系列實例并設置它們的屬性,再在測試方法中直接使用這些實例。相比于在每個測試方法中都創(chuàng)建實例并設置屬性,這要容易的多。

注意

運行測試用例時,每完成一個單元測試,python都打印一個字符: 測試通過時打印一個句點; 測試引發(fā)錯誤時打印一個E; 測試導致斷言失敗時打印一個F。這就是運行測試用例時,在輸出的第一行中看到的句點和字符數量各不相同的原因。如果測試用例包含很多單元測試,需要運行很長時間,就可以通過觀察這些結果來獲悉有多少個測試通過了。

到此這篇關于python中使用 unittest.TestCase 進行單元測試的文章就介紹到這了,更多相關python單元測試內容請搜索好吧啦網以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Python 編程
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
日韩av二区| 综合激情网...| 久久69成人| 国产一区二区三区探花| 国产aⅴ精品一区二区四区| 青青青免费在线视频| 日本精品不卡| 99精品在线观看| 亚洲欧美激情诱惑| 国产日产高清欧美一区二区三区| 国产日韩欧美三级| 老牛影视精品| 亚洲综合二区| 日韩av一区二区三区四区| 久久久国产精品网站| 精品国产第一福利网站| 性欧美xxxx免费岛国不卡电影| 欧美成人综合| 亚洲资源网站| 国产中文欧美日韩在线| 久久视频国产| 美女被久久久| 国产美女久久| 国产精品国产三级国产在线观看| 尹人成人综合网| 国产精品tv| 精品一区亚洲| 欧美伊人影院| 特黄毛片在线观看| 热久久免费视频| 97人人精品| 亚洲一区欧美| 欧美成a人国产精品高清乱码在线观看片在线观看久 | 欧美日韩精品一本二本三本 | 国产视频网站一区二区三区| 九九久久婷婷| 国产精品超碰| 国产精品腿扒开做爽爽爽挤奶网站| 国产日韩亚洲| 在线亚洲国产精品网站| 麻豆91在线播放| 日韩在线a电影| 成人日韩在线观看| 国产精品xxx| 蜜芽一区二区三区| 久久久影院免费| 久久99青青| 亚洲制服一区| 999在线观看精品免费不卡网站| 久久精品国产99国产精品| 亚洲永久精品唐人导航网址| 视频一区中文| 在线精品亚洲欧美日韩国产| 欧美日韩精品一区二区三区在线观看| 久久精品二区三区| 国产一区二区三区探花| 日本欧美一区二区| 国产日韩综合| 成人免费网站www网站高清| 国产精品亚洲综合在线观看| 亚洲午夜久久| 欧美在线亚洲综合一区| 中文字幕人成乱码在线观看| 国产精品jk白丝蜜臀av小说| 亚洲色图国产| 亚洲欧美日韩国产一区二区| 日韩免费av| 国产精品香蕉| 亚洲精品大全| 日韩影院精彩在线| 美女亚洲一区| 久久精品在线| 日韩毛片在线| 日韩在线综合| 日本欧美国产| 麻豆国产欧美一区二区三区| 日本a口亚洲| 天堂av在线一区| 99亚洲视频| 欧美1级日本1级| 精品欧美久久| 欧美日中文字幕| 韩国精品主播一区二区在线观看| 欧美日韩国产观看视频| 电影91久久久| 福利一区二区三区视频在线观看| 麻豆精品少妇| 加勒比视频一区| 国产成年精品| 国产一区二区三区四区| 精品国产18久久久久久二百| 免费在线成人| 91综合网人人| 高清一区二区| 国产盗摄——sm在线视频| 免费精品一区| 福利精品一区| 五月激情久久| 精精国产xxxx视频在线野外| 久久国产欧美| 黑丝美女一区二区| 亚洲欧美高清| 中文字幕一区二区三区四区久久| 亚洲三级国产| 欧美日韩午夜| 欧美激情麻豆| 色偷偷偷在线视频播放| 日韩欧美午夜| 久久视频国产| 老牛影视一区二区三区| 在线精品一区二区| 69精品国产久热在线观看| 欧美天堂在线| 久久久久久婷| 久久精品影视| 亚洲免费一区二区| 欧美一区成人| 电影91久久久| 99久久婷婷| 中文在线一区| 欧美中文一区| 国产成年精品| 美女毛片一区二区三区四区| 日韩一区精品视频| 国产精品自在| 捆绑调教日本一区二区三区| 欧美不卡在线| 久久精品999| se01亚洲视频 | 亚洲2区在线| 老司机精品视频在线播放| 欧美成人a交片免费看| 日韩午夜精品| 国产日韩视频| 国产99久久| 亚洲欧美在线专区| 国产精品成人国产| 91精品国产自产在线观看永久∴ | 久久av在线| 麻豆成人91精品二区三区| 国产91一区| 日韩美女国产精品| 98精品视频| 在线看片日韩| 精品日韩一区| 亚洲免费观看| 国产精品丝袜在线播放| av一区在线| 亚洲精品乱码日韩| 四虎国产精品免费观看| 乱人伦精品视频在线观看| 麻豆国产一区| 99国产精品久久久久久久| 美女国产精品久久久| 黄色成人精品网站| 国产精品久久久免费| 欧美亚洲国产精品久久| 国产亚洲人成a在线v网站| 亚洲午夜av| 国产欧美一区二区色老头| 国产精品av一区二区| 国产精品一站二站| 99日韩精品| 裤袜国产欧美精品一区| 亚洲三级网址| 亚洲成人二区| 久久wwww| 中文字幕一区二区三区日韩精品| 亚洲综合在线电影| 免费一级欧美在线观看视频| 亚洲天堂日韩在线| 99久久亚洲精品蜜臀| 欧美黄色精品| 久久av一区| 亚洲成人国产| 久久精品理论片| 天堂精品久久久久| 免费精品国产的网站免费观看| 久久精品国产亚洲一区二区三区| 亚洲一区二区三区在线免费| 999国产精品| 国产一区二区三区久久 | 免费日本视频一区| 97精品国产福利一区二区三区| 亚洲91网站| 黄色亚洲精品| 欧洲一区二区三区精品| 国产精选久久| 日韩影院在线观看| 国产99在线| 欧美日韩视频| 天堂av在线| 老鸭窝一区二区久久精品| 日韩成人av影视| 免费人成黄页网站在线一区二区| 欧美日韩a区| 国产精品超碰| 国产在线一区不卡| 日韩精品一二三区| 99视频一区|