国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python 單元測試(unittest)的使用小結

2020-02-15 23:41:21
字體:
來源:轉載
供稿:網友

測試目錄

項目的整體結構可以參考“軟件目錄開發規范”,這里單說測試目錄。一般都是在項目里單獨創建一個測試目錄,目錄名就是“tests”。

關于目錄的位置,一種建議是,在項目名(假設項目名是Foo)的一級子目錄下創建二級子目錄 “Foo/foo/tests” 。但是這樣可能是因為用起來不方便,有很多是按下面的做法。不過下面的示例我還是用這個方法來創建測試目錄。
還可以把測試目錄向上移一層,作為一級子目錄,直接創建在項目之下 “Foo/tests”。參考django、scrapy、flask都是這樣的做法。

測試函數

標題的意思是對函數(def)進行測試,相對于測試類(class)。

學習測試,得有要測試的代碼。下面是一個簡單的函數,接收城市名和國家名,返回一個格式為“City, Country“這樣的字符串:

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

接下來就對上面的這個函數進行測試。

手動測試

現在來寫一個使用這個函數的程序:

# 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)

然后運行的結果:

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

上面這樣是手動測試,還是得有一種自動測試函數輸出的高效方式。如果能夠對get_fullname()進行自動測試,就能始終確信,給這個函數提供測試過的姓名后,它能返回正確的結果。尤其是在對函數進行修改的前后。

模塊導入路徑的問題

PyCharm會自動把項目目錄加到環境變量里去,在PyCharm里執行都沒問題。但是如果不用PyCharm而是單獨運行,這個目錄結構應該會有點問題,會找不到需要測試的函數。簡單點就是把測試用例和被測試的函數放到同一個目錄里,然后改一下 from import 就可以正常運行了。或者自己手動添加環境變量,就像例子里那樣。

單元測試-unittest

Python標準庫中的模塊unittest提供了代碼測試工具。

創建測試用例

為函數編寫測試用例,可先導入模塊unittest以及要測試的函數,再創建一個繼承unittest.TestCase的類,并編寫一系列方法對函數行為的不同方面進行測試。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 南城县| 应用必备| 平利县| 松江区| 益阳市| 枣强县| 扬中市| 静安区| 安图县| 从江县| 泌阳县| 响水县| 石柱| 顺昌县| 兴宁市| 应用必备| 迁安市| 宁都县| 九龙坡区| 广西| 青铜峡市| 隆林| 绍兴市| 巫山县| 罗源县| 淄博市| 梧州市| 承德市| 自贡市| 车险| 江华| 浮山县| 肥东县| 长乐市| 南靖县| 铜山县| 重庆市| 尉犁县| 宜昌市| 福建省| 长泰县|