欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python中的Unittest基本使用

 更新時(shí)間:2022年08月26日 11:41:01   作者:哲思天下  
這篇文章主要介紹了Python中的Unittest基本使用,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下

前言:

Unittest又名單元測試,主要用于測試自己寫的代碼的正確性和完備性,也方便自己和他人對(duì)代碼的維護(hù)。在軟件開發(fā)過程中,測試驅(qū)動(dòng)開發(fā)的理念是一種好的開發(fā)習(xí)慣。

例如現(xiàn)在我們寫了一個(gè)求絕對(duì)值的函數(shù)my_abs,存放在myAbs.py中

def my_abs(number):
    if not (isinstance(number, int) or isinstance(number, float)):
        raise ValueError("invalid value %s" % number)
    else:
        if(number >= 0):
            return number
        else:
            return -number

此處的my_abs函數(shù)對(duì)參數(shù)做了檢查,參數(shù)必須是一個(gè)數(shù)(python的數(shù)只有int和float型)。那么如果想要測試這個(gè)函數(shù)的正確性,我們需要寫一個(gè)測試函數(shù),用于測試函數(shù)的各個(gè)分支情況。

基于unittest的的測試代碼如下:

import unittest
 
from myAbs import my_abs
class TestmyAbs(unittest.TestCase):
    def test_positive(self):
        self.assertEqual(my_abs(1), 1)
 
    def test_zero(self):
        self.assertEqual(my_abs(0), 0)
 
    def test_negative(self):
        self.assertEqual(my_abs(-1), 1)
 
    def test_inputerror(self):
        with self.assertRaises(ValueError):
            my_abs("1")
 
if __name__ == "__main__":
    unittest.main()

上述代碼存放在test_myAbs.py中。

unittest的基本使用方法是:

  • 1. 文件命名以test_開頭,這樣方便unittest自動(dòng)執(zhí)行,unittest能自動(dòng)識(shí)別目錄下test_開頭的文件執(zhí)行
  • 2. import unittest     這個(gè)是運(yùn)行unittest的前提
  • 3. 定義class要以Test開頭,必須要從unittest.TestCase繼承,且不能有init方法,測試的方法或者函數(shù)以test_開頭
  • 4. 測試方法中使用assert進(jìn)行斷言

在上面測試代碼的TestMyabs類的方法中,分別對(duì)正數(shù),零和負(fù)數(shù)的情況進(jìn)行了測試,使用assertEqual進(jìn)行結(jié)果的判定;另外測試中還對(duì)輸入?yún)?shù)是無效的情況進(jìn)行了判定,使用了with語句和assertRaises的方式,針對(duì)期望拋出來的異常進(jìn)行判定

unittest的運(yùn)行方式:

1. 單獨(dú)運(yùn)行test_myAbs.py文件,前提是在文件尾增加

? ??if __name__ == "__main__":
? ? ? ? unittest.main()

2. 發(fā)送命令 python -m unittest .\myAbs.py

   當(dāng)發(fā)送命令python -m unittest時(shí),會(huì)執(zhí)行當(dāng)前目錄下所有test_開頭的文件

運(yùn)行結(jié)果如下:

Testing started at 4:43 PM ...
Launching pytest with arguments C:/work/myPythonPrj/test_myAbs.py --no-header --no-summary -q in C:\work\myPythonPrj
 
============================= test session starts =============================
collecting ... collected 4 items
 
test_myAbs.py::TestmyAbs::test_inputerror PASSED                         [ 25%]
test_myAbs.py::TestmyAbs::test_negative PASSED                           [ 50%]
test_myAbs.py::TestmyAbs::test_positive PASSED                           [ 75%]
test_myAbs.py::TestmyAbs::test_zero PASSED                               [100%]
 
============================== 4 passed in 0.03s ==============================
 
Process finished with exit code 0

到此這篇關(guān)于Python中的Unittest基本使用的文章就介紹到這了,更多相關(guān)Python Unittest 內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Django中間件攔截未登錄url實(shí)例詳解

    Django中間件攔截未登錄url實(shí)例詳解

    在本篇文章里小編給各位整理了關(guān)于Django中間件攔截未登錄url的實(shí)例內(nèi)容以及相關(guān)知識(shí)點(diǎn),有需要的朋友們可以學(xué)習(xí)下。
    2019-09-09
  • Python?Flask-Login構(gòu)建強(qiáng)大的用戶認(rèn)證系統(tǒng)實(shí)例探究

    Python?Flask-Login構(gòu)建強(qiáng)大的用戶認(rèn)證系統(tǒng)實(shí)例探究

    這篇文章主要為大家介紹了Python?Flask-Login構(gòu)建強(qiáng)大的用戶認(rèn)證系統(tǒng)示例探究,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2024-01-01
  • Python接口傳輸url與flask數(shù)據(jù)詳解

    Python接口傳輸url與flask數(shù)據(jù)詳解

    這篇文章主要介紹了Python通過接口傳輸url與flask數(shù)據(jù),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-09-09
  • Python實(shí)戰(zhàn)之手勢識(shí)別控制電腦音量

    Python實(shí)戰(zhàn)之手勢識(shí)別控制電腦音量

    這篇文章主要為大家詳細(xì)介紹了一個(gè)Python OpenCV的實(shí)戰(zhàn)小項(xiàng)目——手勢識(shí)別控制電腦音量,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下
    2023-05-05
  • Python OpenCV實(shí)現(xiàn)傳統(tǒng)圖片格式與base64轉(zhuǎn)換

    Python OpenCV實(shí)現(xiàn)傳統(tǒng)圖片格式與base64轉(zhuǎn)換

    Base64是網(wǎng)絡(luò)上最常見的用于傳輸8Bit字節(jié)碼的編碼方式之一,本文主要介紹了Python OpenCV實(shí)現(xiàn)傳統(tǒng)圖片格式與base64轉(zhuǎn)換,感興趣的可以參考一下
    2021-06-06
  • Pytorch使用CUDA流(CUDA?stream)的實(shí)現(xiàn)

    Pytorch使用CUDA流(CUDA?stream)的實(shí)現(xiàn)

    本文主要介紹了Pytorch使用CUDA流(CUDA?stream)的實(shí)現(xiàn),CUDA流是在GPU上并行執(zhí)行操作的一種機(jī)制,通過使用CUDA流,可以將不同的操作分配給不同的流,在不同的流上并行執(zhí)行這些操作,從而提高代碼的性能
    2023-12-12
  • 使用Python生成你的LaTeX公式基礎(chǔ)使用

    使用Python生成你的LaTeX公式基礎(chǔ)使用

    這篇文章主要介紹了使用Python生成你的LaTeX公式基礎(chǔ)使用,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2024-01-01
  • python opencv 讀取圖片 返回圖片某像素點(diǎn)的b,g,r值的實(shí)現(xiàn)方法

    python opencv 讀取圖片 返回圖片某像素點(diǎn)的b,g,r值的實(shí)現(xiàn)方法

    今天小編就為大家分享一篇python opencv 讀取圖片 返回圖片某像素點(diǎn)的b,g,r值的實(shí)現(xiàn)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07
  • python實(shí)現(xiàn)簡易版計(jì)算器

    python實(shí)現(xiàn)簡易版計(jì)算器

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)簡易版計(jì)算器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • Python讀寫JSON文件的操作詳解

    Python讀寫JSON文件的操作詳解

    JSON數(shù)據(jù)類型最常用的應(yīng)用場景就是API或?qū)?shù)據(jù)保存到 .json穩(wěn)當(dāng)數(shù)據(jù)中。使用Python處理這些數(shù)據(jù)會(huì)變得非常簡單,本文將詳細(xì)講解Python如何讀寫JSON文件的,需要的可以參考一下
    2022-04-04

最新評(píng)論