unittest模組為構造和執行測試提供了豐富的工具集。這一節演示了工具的一小部分滿足大多數使用者的需求。
下面是乙個測試三個字串方法的簡短指令碼:
import unittest乙個testcase是通過子類化unittest.testcase建立的。三個單獨的測試用方法定義,這些方法的名字從字母test開始。這個命名約定通知測試執行者,哪些方法表示測試。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()
每個測試的關鍵是呼叫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...