麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁(yè) > 編程 > Python > 正文

Python 單元測(cè)試(unittest)的使用小結(jié)

2020-02-15 23:41:21
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

測(cè)試目錄

項(xiàng)目的整體結(jié)構(gòu)可以參考“軟件目錄開(kāi)發(fā)規(guī)范”,這里單說(shuō)測(cè)試目錄。一般都是在項(xiàng)目里單獨(dú)創(chuàng)建一個(gè)測(cè)試目錄,目錄名就是“tests”。

關(guān)于目錄的位置,一種建議是,在項(xiàng)目名(假設(shè)項(xiàng)目名是Foo)的一級(jí)子目錄下創(chuàng)建二級(jí)子目錄 “Foo/foo/tests” 。但是這樣可能是因?yàn)橛闷饋?lái)不方便,有很多是按下面的做法。不過(guò)下面的示例我還是用這個(gè)方法來(lái)創(chuàng)建測(cè)試目錄。
還可以把測(cè)試目錄向上移一層,作為一級(jí)子目錄,直接創(chuàng)建在項(xiàng)目之下 “Foo/tests”。參考django、scrapy、flask都是這樣的做法。

測(cè)試函數(shù)

標(biāo)題的意思是對(duì)函數(shù)(def)進(jìn)行測(cè)試,相對(duì)于測(cè)試類(class)。

學(xué)習(xí)測(cè)試,得有要測(cè)試的代碼。下面是一個(gè)簡(jiǎn)單的函數(shù),接收城市名和國(guó)家名,返回一個(gè)格式為“City, Country“這樣的字符串:

# UnitTest/unit_test/utils/city_functions.pydef get_city_info(city, country):  city_info = "%s, %s" % (city, country)  return city_info.title()

接下來(lái)就對(duì)上面的這個(gè)函數(shù)進(jìn)行測(cè)試。

手動(dòng)測(cè)試

現(xiàn)在來(lái)寫(xiě)一個(gè)使用這個(gè)函數(shù)的程序:

# UnitTest/unit_test/test/cities.pytry:  from unit_test.utils.city_functions import get_city_infoexcept ModuleNotFoundError:  import sys  sys.path.append('../..')  from unit_test.utils.city_functions import get_city_infoprint("Enter 'q' at any time to quit.")while True:  city = input("city name: ")  if city == 'q':    break  country = input("country name: ")  if country == 'q':    break  fullname = get_city_info(city, country)  print("/tcity info:", fullname)

然后運(yùn)行的結(jié)果:

Enter 'q' at any time to quit.
city name: shanghai
country name: china
    city info: Shanghai, China
city name: q

Process finished with exit code 0

上面這樣是手動(dòng)測(cè)試,還是得有一種自動(dòng)測(cè)試函數(shù)輸出的高效方式。如果能夠?qū)et_fullname()進(jìn)行自動(dòng)測(cè)試,就能始終確信,給這個(gè)函數(shù)提供測(cè)試過(guò)的姓名后,它能返回正確的結(jié)果。尤其是在對(duì)函數(shù)進(jìn)行修改的前后。

模塊導(dǎo)入路徑的問(wèn)題

PyCharm會(huì)自動(dòng)把項(xiàng)目目錄加到環(huán)境變量里去,在PyCharm里執(zhí)行都沒(méi)問(wèn)題。但是如果不用PyCharm而是單獨(dú)運(yùn)行,這個(gè)目錄結(jié)構(gòu)應(yīng)該會(huì)有點(diǎn)問(wèn)題,會(huì)找不到需要測(cè)試的函數(shù)。簡(jiǎn)單點(diǎn)就是把測(cè)試用例和被測(cè)試的函數(shù)放到同一個(gè)目錄里,然后改一下 from import 就可以正常運(yùn)行了?;蛘咦约菏謩?dòng)添加環(huán)境變量,就像例子里那樣。

單元測(cè)試-unittest

Python標(biāo)準(zhǔn)庫(kù)中的模塊unittest提供了代碼測(cè)試工具。

創(chuàng)建測(cè)試用例

為函數(shù)編寫(xiě)測(cè)試用例,可先導(dǎo)入模塊unittest以及要測(cè)試的函數(shù),再創(chuàng)建一個(gè)繼承unittest.TestCase的類,并編寫(xiě)一系列方法對(duì)函數(shù)行為的不同方面進(jìn)行測(cè)試。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 亚洲精品成人久久 | 手机免费看一级片 | 亚洲爱爱网站 | 久久精品性视频 | 国产精品亚洲精品日韩已方 | h视频在线播放 | 亚洲无av | 97久久人人超碰caoprom | 国产午夜精品视频免费不卡69堂 | 香蕉视频99 | 国产91免费看 | 中文字幕在线观看二区 | 嫩呦国产一区二区三区av | 激情宗合 | 欧美成人午夜一区二区三区 | 天天碰夜夜操 | aa国产视频一区二区 | 九九热视频这里只有精品 | www视频免费在线观看 | 男女羞羞视频在线免费观看 | 成人一区三区 | 久章草影院 | 欧美成人精品不卡视频在线观看 | 久久精品一区二区三区国产主播 | 免费网站看v片在线a | 高潮激情aaaaa免费看 | avav在线播放 | 国产流白浆高潮在线观看 | 亚洲一区久久久 | 暴力强行进如hdxxx | 72pao成人国产永久免费视频 | 一级一片免费看 | 亚洲人成综合第一网 | 国产一区二区三区在线视频 | 中文字幕在线免费观看电影 | 特片网久久 | 欧美一级高潮 | 九色国产| 污片视频网站 | 中文字幕免费看 | 日产精品一区二区三区在线观看 |