小編這這篇文章的主要目的,主要是給大家進(jìn)行一個(gè)詳解,解釋一下關(guān)于Python中,單元格測(cè)試的一些具體方法,那么,測(cè)試的方法都有什么呢?下面小編就給大家詳細(xì)的做出一個(gè)解答。
一、前言
python的兩個(gè)單元測(cè)試包分別是doctest和unittest,這兩個(gè)包的使用起來各有長(zhǎng)處,適用于不同的場(chǎng)景
doctest:直接寫在方法體中,利用了python動(dòng)態(tài)語言的特性,書寫方式簡(jiǎn)單明了,前提是項(xiàng)目不要太大,如果項(xiàng)目復(fù)雜代碼量大,再加上寫在方法體中的單元測(cè)試,整體就會(huì)看起來有些臃腫,因此doctest適用于代碼量不大的普通項(xiàng)目
unittest:一般寫在獨(dú)立文件中,與spring的單元測(cè)試有點(diǎn)像,項(xiàng)目結(jié)構(gòu)清晰,不過簡(jiǎn)單項(xiàng)目中測(cè)試一些小功能的話實(shí)屬dark不必了
二、實(shí)現(xiàn)
先寫一個(gè)待測(cè)試的方法 def add(num1,num2): return num1+num2 1.doctest def add(num1,num2): """ 直接寫在待測(cè)方法中 >>>add(14,5) 19 >>>add(14,5)>1 True >>>add(20,30,70) Traceback(most recent call last): ... TypeError:add()takes 2 positional arguments but 3 were given """ return num1+num2 if __name__=="__main__": import doctest doctest.testmod() 運(yùn)行上面的代碼什么都不會(huì)輸出,因?yàn)轭A(yù)測(cè)結(jié)果全部正確,只有在預(yù)測(cè)結(jié)果錯(cuò)誤的時(shí)候才會(huì)給提示 ps: add(14,5)為測(cè)試方法,19為預(yù)測(cè)結(jié)果 add(14,5)>1為測(cè)試方法,True為預(yù)測(cè)結(jié)果 add(20,30,70)為測(cè)試方法,Traceback(most recent call last):為異常拋出的第一句話【錯(cuò)誤原因】,TypeError:add()takes 2 positional arguments but 3 were given為異常拋出的最后一句話【異常類型:解釋說明】,中間三個(gè)點(diǎn)省略了異常中的文件路徑信息
2.unittest
import unittest #引入上面的待測(cè)試方法 from src.main.add import add class TestStatisticalFunctions(unittest.TestCase): def test_add(self): self.assertEqual(add(14,5),19)#斷言add(14,5)的結(jié)果為19 self.assertTrue(add(14,5)>1,True)#斷言add(14,5)>1的結(jié)果為True with self.assertRaises(TypeError):#斷言add(20,30,70)拋出TypeError異常 add(20,30,70) if __name__=='__main__': unittest.main()
同樣,運(yùn)行上面的代碼什么都不會(huì)輸出,因?yàn)轭A(yù)測(cè)結(jié)果全部正確,只有在預(yù)測(cè)結(jié)果錯(cuò)誤的時(shí)候才會(huì)給提示
關(guān)于這篇文章,小編就給大家介紹到這里了,希望可以給大家?guī)砀鄮椭?/p>
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/128241.html
摘要:在中什么是迭代器在中,迭代器用于迭代一組元素,如列表之類的容器。中的生成器是什么實(shí)現(xiàn)迭代器的方法稱為生成器。如何將數(shù)字轉(zhuǎn)換為字符串要將數(shù)字轉(zhuǎn)換為字符串,請(qǐng)使用內(nèi)置函數(shù)。如果需要八進(jìn)制或十六進(jìn)制表示,請(qǐng)使用內(nèi)置函數(shù)或。 showImg(https://segmentfault.com/img/bVbfztO?w=1024&h=1024);16)在Python中什么是迭代器? 在Pytho...
小編寫這篇文章的一個(gè)主要目的,主要就是給大家去做一個(gè)解答,接的內(nèi)容主要是利用python去讀取excel表格,那么,怎么才能快速的實(shí)現(xiàn)這個(gè)操作呢?下面就給大家詳細(xì)解答下?! ∫?、python讀取excel表格數(shù)據(jù) 1、讀取excel表格數(shù)據(jù)常用操作 importxlrd #打開excel表格 data_excel=xlrd.open_workbook('data/datas...
摘要:基于的私有云混合云構(gòu)建方案蘇依蜀黍是一個(gè)開源的引擎,可以輕松的為任何應(yīng)用創(chuàng)建一個(gè)輕量級(jí)的可移植的自給自足的容器。開發(fā)者在筆記本上編譯測(cè)試通過的容器可以批量地在生產(chǎn)環(huán)境中部署,包括虛擬機(jī)集群和其他的基礎(chǔ)應(yīng)用平臺(tái)。 container-as-a-service-0x01 -- 基于Docker的私有云&混合云構(gòu)建方案 By 蘇依蜀黍 . 2016.06.07 what Docker是一...
摘要:?jiǎn)卧獪y(cè)試框架作為的標(biāo)準(zhǔn)庫,是其他單元測(cè)試框架的基礎(chǔ)。可以和和配合使用編寫單元測(cè)試。官網(wǎng)地址單元測(cè)試覆蓋率工具單元測(cè)試中還需要用到代碼覆蓋率工具。代碼覆蓋率統(tǒng)計(jì)工具用來發(fā)現(xiàn)沒有被測(cè)試覆蓋的代碼,完善單元測(cè)試的覆蓋率。 在應(yīng)用程序中,單元是具有一個(gè)或多個(gè)輸入和單個(gè)輸出的軟件中最小可測(cè)試部分。單元...
摘要:接下來我們將介紹如何對(duì)對(duì)象的方法進(jìn)行模擬測(cè)試。選項(xiàng)創(chuàng)建模擬測(cè)試接口我們可以在的構(gòu)造函數(shù)中提供一個(gè)模擬測(cè)試實(shí)例,而不是模擬創(chuàng)建具體的模擬測(cè)試方法。 如何不靠耐心測(cè)試 通常,我們編寫的軟件會(huì)直接與那些我們稱之為骯臟的服務(wù)交互。通俗地說,服務(wù)對(duì)我們的應(yīng)用來說是至關(guān)重要的,它們之間的交互是我們?cè)O(shè)計(jì)好的,但這會(huì)帶來我們不希望的副作用——就是那些在我們自己測(cè)試的時(shí)候不希望的功能。 比如,可能我們...
閱讀 928·2023-01-14 11:38
閱讀 902·2023-01-14 11:04
閱讀 759·2023-01-14 10:48
閱讀 2065·2023-01-14 10:34
閱讀 968·2023-01-14 10:24
閱讀 844·2023-01-14 10:18
閱讀 512·2023-01-14 10:09
閱讀 591·2023-01-14 10:02