單元測試的書寫規(guī)范

一個單元測試樣例的規(guī)則

  • 完全自動運行,而不需要人工干預(yù)。單元測試幾乎是全自動的。
  • 自主判斷被測試的方法是通過還是失敗,而不需要人工解釋結(jié)果。
  • 獨立運行,而不依賴其它測試用例(即使測試的是同樣的方法)。即,每一個測試用例都是一個孤島。
  • 每一個獨立的測試都有它自己的不含參數(shù)及沒有返回值的方法。如果方法不拋出異常而正常退出則認為測試通過;否則,測試失敗。

測試文件的位置及命名規(guī)則

  1. 為了編寫測試用例,首先使該測試用例類成為unittest 模塊的TestCase 類的子類。TestCase 提供了很多你可以用于測試特定條件的測試用例的有用的方法。
  2. 所有測試樣例放在項目根目錄下的 test 文件夾中,如果你的所有測試都在一個文件中,也可以省略文件夾,直接把這個文件放在根目錄下,命名為test_your_project.py (例如test_requests.py)。
  3. 如前一個測試用例,創(chuàng)建一個繼承于 unittest.TestCase 的類。你可以在每個類中實現(xiàn)多個測試(正如你在本節(jié)中將會看到的一樣),但是我卻選擇了創(chuàng)建一個新類,因為該測試與上一個有點不同。這樣,我們可以把正常輸入的測試跟非法輸入的測試分別放入不同的兩個類中。
  4. 測試本身是類一個方法,并且該方法以 test 開頭命名。
  5. 當(dāng)你改變條件的時候,要確保同步更新那些提示錯誤信息的可讀字符串。unittest 框架并不關(guān)心這些,但是如果你的代碼拋出描述不正確的異常信息的話會使得手工調(diào)試代碼變得困難。
  6. 出現(xiàn)頻率較多和不明朗的方法,需要加注釋,比如test_string如果不加注釋很難讓人讀懂測試的是哪一個 string。

我們以bottle的測試為例:

import unittest
from tools import warn
from bottle import MakoTemplate, mako_template, mako_view, touni

class TestMakoTemplate(unittest.TestCase):
    def test_string(self):
        """ Templates: Mako string"""
        t = MakoTemplate('start ${var} end').render(var='var')
        self.assertEqual('start var end', t)

    def test_file(self):
        """ Templates: Mako file"""
        t = MakoTemplate(name='./views/mako_simple.tpl').render(var='var')
        self.assertEqual('start var end\n', t)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 用Python搭建自動化測試框架,我們需要組織用例以及測試執(zhí)行,這里博主推薦Python的標(biāo)準(zhǔn)庫——unittes...
    灰藍藍藍藍藍藍閱讀 9,847評論 3 56
  • unittest作為一個python中的基本模塊,是其他框架和工具的基礎(chǔ),官方文檔神馬的最實用了:https://...
    cheneydc閱讀 8,231評論 0 3
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,502評論 19 139
  • Startup 單元測試的核心價值在于兩點: 更加精確地定義某段代碼的作用,從而使代碼的耦合性更低 避免程序員寫出...
    wuwenxiang閱讀 10,232評論 1 27
  • 相比而言,很多大學(xué)畢業(yè)生大多數(shù)都選擇了一份辦公室的工作,風(fēng)刮不著日曬不到,覺得自己天生就是做辦公室的名。像那種...
    可愛的周老大閱讀 340評論 0 0

友情鏈接更多精彩內(nèi)容