您好,登錄后才能下訂單哦!
這篇文章主要介紹python中單元測(cè)試指的是什么,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!
在python中,單元測(cè)試是用來對(duì)一個(gè)模塊、一個(gè)函數(shù)或者一個(gè)類來進(jìn)行正確性檢驗(yàn)的測(cè)試工作。
單元測(cè)試
通常是測(cè)試一小塊代碼的功能,比如一個(gè)函數(shù),類的一個(gè)方法。
單元測(cè)試通常是開發(fā)人員做的一種測(cè)試,通常是測(cè)試函數(shù),方法這種級(jí)別的代碼塊的。單元測(cè)試大都是 設(shè)計(jì)出不同的調(diào)用參數(shù)來調(diào)用函數(shù),來看 函數(shù) 的輸出是否符合預(yù)期。當(dāng)然如果你的代碼寫的不好的話,單元測(cè)試也會(huì)比較麻煩。比如一個(gè)功能模塊沒有內(nèi)聚到函數(shù)中,而是分散在代碼文件里面。那樣,就不容易用一個(gè)函數(shù)調(diào)用對(duì)這些功能進(jìn)行測(cè)試。
使用pytest進(jìn)行python進(jìn)行單元測(cè)試
python內(nèi)置了一個(gè)unittest,但是寫起來稍微繁瑣,比如都要寫一個(gè)TestCase類,還得用 assertEqual, assertNotEqual等斷言方法。 而使用pytest運(yùn)行測(cè)試統(tǒng)一用assert語句就行,兼容unittest,目前很多知名開源項(xiàng)目如PyPy,Sentry也都在用。關(guān)于pytest的使用可以參考其官方文檔,雖然有很多高級(jí)特性,但是掌握其中一小部分基本就夠用了。
下面是py.test的基本用法,以常見的兩種測(cè)試類型(驗(yàn)證返回值和拋出異常)為例:
def add(a, b): """return a + b Args: a (int): int b (int): int Returns: a + b Raises: AssertionError: if a or b is not integer """ assert all([isinstance(a, int), isinstance(b, int)]) return a + b def test_add(): assert add(1, 2) == 3 assert isinstance(add(1, 2) , int) with pytest.raises(Exception): # test exception add('1', 2)
上面是示例,真實(shí)場(chǎng)景下遠(yuǎn)遠(yuǎn)比這個(gè)復(fù)雜,甚至有時(shí)候構(gòu)造測(cè)試的時(shí)間比寫業(yè)務(wù)邏輯的時(shí)間還要長。但是再復(fù)雜的邏輯也是一點(diǎn)點(diǎn)功能堆積,如果可以確保每一部分都正確,整體上是不會(huì)出錯(cuò)的。單元測(cè)試同時(shí)也提醒我們,函數(shù)完成的功能盡可能單一,這樣才利于測(cè)試。
下面幾個(gè)是我常用的pytest命令:
py.test test_mod.py # run tests in module py.test somepath # run all tests below somepath py.test -q test_file_name.py # quite輸出 py.test -s test_file_name.py # -s參數(shù)可以打印測(cè)試代碼中的輸出,默認(rèn)不打印,print沒結(jié)果 py.test test_mod.py::test_func # only run tests that match the "node ID", py.test test_mod.py::TestClass::test_method # run a single method in
以上是python中單元測(cè)試指的是什么的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。