亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

詳解Python單元測試的兩種寫法

 更新時間:2022年07月07日 10:51:33   作者:什么都干的派森  
python的兩個單元測試包分別是 doctest 和 unittest,這兩個包的使用起來各有長處,適用于不同的場景,這篇文章主要介紹了Python單元測試的兩種寫法,需要的朋友可以參考下

一、前言

python的兩個單元測試包分別是 doctest 和 unittest,這兩個包的使用起來各有長處,適用于不同的場景

  • doctest:直接寫在方法體中,利用了 python 動態(tài)語言的特性,書寫方式簡單明了,前提是項目不要太大,如果項目復(fù)雜代碼量大,再加上寫在方法體中的單元測試,整體就會看起來有些臃腫,因此 doctest 適用于代碼量不大的普通項目
  • unittest:一般寫在獨立文件中,與 spring 的單元測試有點像,項目結(jié)構(gòu)清晰,不過簡單項目中測試一些小功能的話實屬dark不必了

二、實現(xiàn)

先寫一個待測試的方法

def add(num1, num2):
    return num1 + num2

1.doctest

def add(num1, num2):
    """
    直接寫在待測方法中
    
    >>> 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ù)測結(jié)果全部正確,只有在預(yù)測結(jié)果錯誤的時候才會給提示
ps:

  • add(14, 5) 為測試方法,19 為預(yù)測結(jié)果
  • add(14, 5) > 1 為測試方法,True 為預(yù)測結(jié)果
  • add(20, 30, 70) 為測試方法,Traceback (most recent call last): 為異常拋出的第一句話【錯誤原因】,TypeError: add() takes 2 positional arguments but 3 were given 為異常拋出的最后一句話【異常類型:解釋說明】,中間三個點省略了異常中的文件路徑信息

2.unittest

import unittest
# 引入上面的待測試方法
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ù)測結(jié)果全部正確,只有在預(yù)測結(jié)果錯誤的時候才會給提示

到此這篇關(guān)于Python單元測試的兩種寫法的文章就介紹到這了,更多相關(guān)Python單元測試內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 對Tensorflow中tensorboard日志的生成與顯示詳解

    對Tensorflow中tensorboard日志的生成與顯示詳解

    今天小編就為大家分享一篇對Tensorflow中tensorboard日志的生成與顯示詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-02-02
  • Python函數(shù)的參數(shù)常見分類與用法實例詳解

    Python函數(shù)的參數(shù)常見分類與用法實例詳解

    這篇文章主要介紹了Python函數(shù)的參數(shù)常見分類與用法,結(jié)合實例形式較為詳細的分析了Python函數(shù)的形參、實參、默認參數(shù)、可變參數(shù)等概念、使用方法及相關(guān)操作注意事項,需要的朋友可以參考下
    2019-03-03
  • R語言 vs Python對比:數(shù)據(jù)分析哪家強?

    R語言 vs Python對比:數(shù)據(jù)分析哪家強?

    R語言和Python在數(shù)據(jù)分析方法都各有所長,兩者現(xiàn)在可以說是都非常熱門的,那么這篇文章就來給大家總結(jié)介紹關(guān)于R語言和Python數(shù)據(jù)分析的相關(guān)資料,并給大家推薦了一些相關(guān)的書籍學(xué)習(xí),需要的朋友可以參考借鑒,下面隨著小編來一起看看吧。
    2017-11-11
  • python基礎(chǔ)之//、/與%的區(qū)別詳解

    python基礎(chǔ)之//、/與%的區(qū)別詳解

    在學(xué)習(xí)Python或者使用Python進行工作的時候,大家應(yīng)該都看到過“/”和“//”,下面這篇文章主要給大家介紹了關(guān)于python基礎(chǔ)之//、/與%區(qū)別的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-06-06
  • Python itertools模塊詳解

    Python itertools模塊詳解

    這篇文章主要介紹了Python itertools模塊詳解,本文基本是基于文檔的翻譯和補充,相當于翻譯了,需要的朋友可以參考下
    2015-05-05
  • python3 實現(xiàn)驗證碼圖片切割的方法

    python3 實現(xiàn)驗證碼圖片切割的方法

    今天小編就為大家分享一篇python3 實現(xiàn)驗證碼圖片切割的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • Python?reflect單例模式反射各個函數(shù)

    Python?reflect單例模式反射各個函數(shù)

    這篇文章主要介紹了Python?reflect單例模式反射各個函數(shù),文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值需要的小伙伴可以參考一下
    2022-06-06
  • Python基于機器學(xué)習(xí)方法實現(xiàn)的電影推薦系統(tǒng)實例詳解

    Python基于機器學(xué)習(xí)方法實現(xiàn)的電影推薦系統(tǒng)實例詳解

    這篇文章主要介紹了Python基于機器學(xué)習(xí)方法實現(xiàn)的電影推薦系統(tǒng),本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-06-06
  • tensorflow構(gòu)建BP神經(jīng)網(wǎng)絡(luò)的方法

    tensorflow構(gòu)建BP神經(jīng)網(wǎng)絡(luò)的方法

    這篇文章主要為大家詳細介紹了tensorflow構(gòu)建BP神經(jīng)網(wǎng)絡(luò)的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • python tornado微信開發(fā)入門代碼

    python tornado微信開發(fā)入門代碼

    這篇文章主要為大家詳細介紹了python tornado微信開發(fā)入門代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-08-08

最新評論