成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

python學(xué)習(xí)筆記- 單元測試,UnitTest

k00baa / 1281人閱讀

摘要:所謂的單元測試,就是對一個模塊,一個函數(shù),或則是一個類進(jìn)行正確性檢測的一類測試工作。當(dāng)然,單元測試也會讓代碼量大大增加。編寫單元測試代碼需要引入的包。再所有單元測試開始前運(yùn)行函數(shù)在所有單元測試運(yùn)行后運(yùn)行。

所謂的單元測試,就是對一個模塊,一個函數(shù),或則是一個類進(jìn)行正確性檢測的一類測試工作。

以測試驅(qū)動的開發(fā)方式叫做測試驅(qū)動開發(fā)(Test Drived Development). 這種開發(fā)模式不僅僅是測試,而是分解需求,保證代碼質(zhì)量的一種手段。

單元測試不僅僅在測試的時候保障函數(shù)、模塊或者類的功能符合我們的需求。同時,也有利于我們在未來修改類或者函數(shù)的時候,只需要再跑一遍單元測試就可以確保我們的修改對功能不會產(chǎn)生影響。

當(dāng)然,單元測試也會讓代碼量大大增加。

編寫單元測試代碼需要引入Python的unittest包。
我們可以新建一個單元測試類,但是這個類需要繼承unitest.TestCase類。
測試類中的測試方法必須是test開頭的,否則不會被執(zhí)行。
那么這樣我們就可以使用unitest.TestCase中的方法了。
常用的方法有:

assertEqual(self, first, second) # 判斷是否是預(yù)期值
assertTrue(bool) # 判斷是否為真
assertRaises(exception) #判斷是非拋出特定異常。

我們來舉一個例子:

我們先定義一個類自定義類,然后對它進(jìn)行單元測試。

Dict.py

class Dict(dict):
    def __init__(self, **kwargs):
        super(Dict, self).__init__(**kwargs)

    def __getattr__(self, item):
        try:
            return self[item]
        except KeyError:
            raise AttributeError

    def __setattr__(self, key, value):
        self[key] = value
import unittest
from Dict import Dict


class DictTest(unittest.TestCase):
    def test_init(self):
        d = Dict(a=100, b=200)
        self.assertEqual(d.a, 100)
        self.assertEqual(d.b, 200)
        self.assertTrue(isinstance(d, dict))

    def test_key(self):
        d = Dict()
        d["key"] = "300"
        self.assertEqual(d["key"], "300")

    def test_attar(self):
        d = Dict()
        d.attar = "attar"
        self.assertTrue("attar" in d)
        self.assertEqual(d.attar, "attar")

    def test_keyError(self):
        d = Dict()
        with self.assertRaises(KeyError):
            value = d["NotExisted"]

    def test_attarError(self):
        d = Dict()
        with self.assertRaises(AttributeError):
            value = d.not_existed

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

因?yàn)槲覀兌x了一個dict的子類,所以我們要對它的key、value進(jìn)行測試;同時它是一個類,所以我們也需要對它的attribute進(jìn)行測試。

我們定義的unittest.TestCase子類,需要寫上兩句:

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

我們才能像普通python文件一樣執(zhí)行它。

另外,我們也可以用以下方式執(zhí)行多個test

python -m unittest DictTest
setUp 和 tearDown函數(shù)。

setUp和tearDown函數(shù)是兩個特殊的函數(shù)。
setUp再所有單元測試開始前運(yùn)行; tearDown函數(shù)在所有單元測試運(yùn)行后運(yùn)行。
這兩個函數(shù)的應(yīng)用場景主要有:
例如在需要連接數(shù)據(jù)庫的情況下,可以在setUp函數(shù)中開始連接,在tearDown函數(shù)中關(guān)閉連接。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/38323.html

相關(guān)文章

  • Python學(xué)習(xí)之路10-測試代碼

    摘要:也就是說,你可以將上述代碼中的看做單元測試,而將看做測試用例。在測試類中的每一個測試方法都必須以開頭,否則將不會被認(rèn)定是一個單元測試。 《Python編程:從入門到實(shí)踐》筆記。本章主要學(xué)習(xí)如何使用Python標(biāo)準(zhǔn)庫中的unittest模塊對代碼進(jìn)行簡單的測試。 1. 前言 作為初學(xué)者,并非必須為你嘗試的所有項(xiàng)目編寫測試;但參與工作量較大的項(xiàng)目時,你應(yīng)對自己編寫的函數(shù)和類的重要行為進(jìn)行測...

    huangjinnan 評論0 收藏0
  • Python學(xué)習(xí)之路10-測試代碼

    摘要:也就是說,你可以將上述代碼中的看做單元測試,而將看做測試用例。在測試類中的每一個測試方法都必須以開頭,否則將不會被認(rèn)定是一個單元測試。 《Python編程:從入門到實(shí)踐》筆記。本章主要學(xué)習(xí)如何使用Python標(biāo)準(zhǔn)庫中的unittest模塊對代碼進(jìn)行簡單的測試。 1. 前言 作為初學(xué)者,并非必須為你嘗試的所有項(xiàng)目編寫測試;但參與工作量較大的項(xiàng)目時,你應(yīng)對自己編寫的函數(shù)和類的重要行為進(jìn)行測...

    Developer 評論0 收藏0
  • 通過demo學(xué)習(xí)OpenStack開發(fā)所需的基礎(chǔ)知識 -- 單元測試

    摘要:本文將進(jìn)入單元測試的部分,這也是基礎(chǔ)知識中最后一個大塊。本文將重點(diǎn)講述和中的單元測試的生態(tài)環(huán)境。另外,在中指定要運(yùn)行的單元測試用例的完整語法是。中使用模塊管理單元測試用例。每個項(xiàng)目的單元測試代碼結(jié)構(gòu)可 本文將進(jìn)入單元測試的部分,這也是基礎(chǔ)知識中最后一個大塊。本文將重點(diǎn)講述Python和OpenStack中的單元測試的生態(tài)環(huán)境。 單元測試的重要性 github上有個人畫了一些不同語言的學(xué)...

    douzifly 評論0 收藏0
  • 【自動化測試Python - unittest單元測試框架

    摘要:通過數(shù)據(jù)的改變從而驅(qū)動自動化測試的執(zhí)行,最終引起測試結(jié)果的改變。二框架用搭建自動化測試框架,需要組織用例以及測試執(zhí)行,大部分推薦的是。 一、測試模型 下面這部分來自于某書籍資料,拿過來,按需參考一下: 測試模型(1)線性測試1、概念:通過錄制或編寫對應(yīng)應(yīng)用程序的操作步驟產(chǎn)生的線性腳本。單純的來模擬用戶完整的操作場景。(操作,重復(fù)操作,數(shù)據(jù))都混合在一起。2、優(yōu)點(diǎn):每個腳本相對獨(dú)立,...

    noONE 評論0 收藏0
  • 說說Python中的單元測試

    摘要:必然的,他們會拋棄標(biāo)準(zhǔn)庫中的,使用或者發(fā)明自己心儀的單元測試框架。究其原因,一些人會說時間寫代碼都不夠,哪還有空寫單元測試。最后我的個人觀點(diǎn),單元測試其實(shí)還有一個非常重要的作用,就是替代函數(shù)文檔注釋。希望從今天起,你的代碼也都有單元測試。 單元測試是每種編程語言必學(xué)的課題,是保護(hù)開發(fā)者的強(qiáng)力護(hù)盾,每個程序員都在時間允許的情況下盡可能多的寫單元測試,今天我們不討論其必要性,只拋磚引玉聊一...

    chengjianhua 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<