unittest乙個簡單的例子

2022-09-02 06:54:10 字數 1624 閱讀 3507

unittest模組為構造和執行測試提供了豐富的工具集。這一節演示了工具的一小部分滿足大多數使用者的需求。

下面是乙個測試三個字串方法的簡短指令碼:

import unittest

class teststringmethods(unittest.testcase):

def test_upper(self):

print("test_upper")

self.assertequal('foo'.upper(), 'foo')

def test_isupper(self):

print("test_isupper")

self.asserttrue('foo'.isupper())

self.assertfalse('foo'.isupper())

def itest_split(self):

print("test_split")

s = 'hello world'

self.assertequal(s.split(), ['hello', 'world'])

# check that s.split fails when the separator is not a string

with self.assertraises(typeerror):

s.split(2)

if __name__ == '__main__':

unittest.main()

乙個testcase是通過子類化unittest.testcase建立的。三個單獨的測試用方法定義,這些方法的名字從字母test開始。這個命名約定通知測試執行者,哪些方法表示測試。

每個測試的關鍵是呼叫assertequal()來檢查預期的結果;asserttrue()assertfalse()來驗證乙個條件;或者assertraises()來驗證乙個特定的異常是否會被提高。這些方法被使用而不是斷言語句,因此測試執行器可以積累所有的測試結果並生成乙個報告。

setup()和teardown()方法允許您定義在每個測試方法之前和之後執行的指令。在組織測試**的部分中,將詳細介紹它們。

最後乙個塊顯示了執行測試的簡單方法。main()為測試指令碼提供了乙個命令列介面。當從命令列執行時,上面的指令碼會生成如下輸出:

如果將test_upper的名字改為pest_upper,這個用例將不會被執行,說明只執行test開頭的用例

除了unittest.main(),還有其他一些方法可以使用更細的控制級別來執行測試,不那麼簡潔的輸出,也不需要從命令列執行。例如,最後兩行可能被替換為:

suite = unittest.testloader().loadtestsfromtestcase(teststringmethods)

unittest.texttestrunner(verbosity=2).run(suite)

輸出為:

乙個簡單css例子

lang en charset utf 8 css講解title rel stylesheet href style.css body div dd xddaa hover abc ulli first child ulli last child ulli nth child 3 ulli only...

乙個簡單的json例子

名稱 年齡郵箱 response.setcontenttype text html charset utf 8 response.setheader cache control no cache jsonobject json new jsonobject try json.put jobs mem...

乙個poll的簡單例子

該程式使用poll事件機制實現了乙個簡單的訊息回顯的功能,其伺服器端和客戶端的 如下所示 伺服器端 start from the very beginning,and to create greatness author chuangwei lin e mail 979951191 qq.com b...