unittest框架入門之TestCase類用法

2021-10-01 03:06:03 字數 2023 閱讀 4175

def

add(a,b)

:return

(a+b)

defsubtract

(a,b)

:return

(a-b)

defmultiply

(a,b)

:return

(a*b)

defdivide

(a,b)

:return

(a/b)

1、建立檔案demo27.py

2、建立檔案unittestdemo27.py

import unittest

from demo27 import add,subtract,multiply,divide

#匯入python檔案demo27中的函式

#print(dir(unittest.testcase))

class

demotestcase

(unittest.testcase)

:#建立子類demotestcase繼承父類unittest.testcase

deftest_add

(self)

:#定義測試用例,以「test_」開頭命名的方法

self.assertequal(

3,add(1,

2),msg=

'測試失敗時列印的資訊'

)#使用unittest.testcase類下面的assertequal斷言方法用於對測試結果的判斷

#assertequal(a,b,[msg='測試失敗時列印的資訊']):斷言a和b是否相等,相等則測試用例通過。不通過時列印msg內容

#print(1)

@unittest.expectedfailure #標記該測試預期為失敗 ,如果該測試方法執行失敗,則該測試不算做失敗

deftest_subtract

(self)

: self.assertequal(

3,subtract(4,

1))#print(2)

deftest_multiply

(self)

: self.assertequal(

3,multiply(1,

3))#print(3)

@unittest.skip(

'暫時跳過該測試用例'

)def

test_divide

(self)

: self.assertequal(

0.5,divide(1,

2))#print(4)

if __name__ ==

"__main__"

: unittest.main(

)#unittest.main()方法會搜尋該模組下所有以test開頭的測試用例方法,並自動執行它們。

#執行方法的預設順序是:根據ascii碼的順序載入測試用例,數字與字母的順序為:0-9,a-z,a-z。所以以a開頭的測試用例方法會優先執行,以a開頭會後執行。

執行結果:

d:\python20190819>

"c:/program files/python37/python.exe" d:

/python20190819/unittestdemo27.py

.s.u--

----

----

----

----

----

----

----

----

----

----

----

----

----

----

----

----

----

ran 4 tests in

0.000s

failed (skipped=

1, unexpected successes=1)

d:\python20190819>

python之unittest框架入門

unittest單元測試框架不僅可以適用於單元測試,還可以適用web自動化測試用例的開發與執行,該測試框架可組織執行測試用例,並且提供了豐富的斷言方法,判斷測試用例是否通過,最終生成測試結果。今天筆者就總結下如何使用unittest單元測試框架來進行web自動化測試。1.用import語句引入uni...

php CI框架入門

顯示2.控制器認識 controller是框架控制器資料夾 我們來寫一下自己的控制器,控制器檔名要和類名一直,類名首字母大寫 test.php檔案 defined basepath or exit no direct script access allowed class test extends ...

SSH框架入門

目前最新版本是spring framework 2.5.6 with dependencies.zip,該包不僅包含spring的開發包,而且包含spring編譯和執行所依賴的第三方類庫 aspectj 該路徑下包含了spring支援aspectj所需類的源 也包含了相關測試用例檔案 dist 該資...