為什么要測(cè)試
- 程序開(kāi)發(fā)流程一般階段:需求分析沿猜、設(shè)計(jì)階段敌蚜、實(shí)現(xiàn)階段接谨、測(cè)試階段
- 測(cè)試階段是通過(guò)人工或自動(dòng)運(yùn)行來(lái)測(cè)試某些功能蛇尚。目的為了檢驗(yàn)其是否滿足需求芽唇,以弄清楚預(yù)期結(jié)果和實(shí)際結(jié)果之間的差別
測(cè)試分類(lèi)
- 單元測(cè)試:對(duì)單獨(dú)的代碼塊(函數(shù)、類(lèi))分別進(jìn)行測(cè)試取劫,以保證其的穩(wěn)定性
- 集成測(cè)試:對(duì)大量的程序單元的協(xié)同工作情況做測(cè)試
- 系統(tǒng)測(cè)試:同時(shí)對(duì)整個(gè)系統(tǒng)的正確性進(jìn)行檢查匆笤,而不是針對(duì)獨(dú)立的片段
什么是單元測(cè)試
- 在實(shí)際開(kāi)發(fā)中,代碼通過(guò)編譯谱邪,只是說(shuō)明它的語(yǔ)法正確疚膊,功能實(shí)現(xiàn)不能保證。因此在完成某些功能后虾标,為了檢驗(yàn)是否滿足程序的需求寓盗」嘧可以通過(guò)編寫(xiě)測(cè)試代碼,模擬程序運(yùn)行過(guò)程傀蚌,檢驗(yàn)功能代碼是否符合預(yù)期
- 單元測(cè)試實(shí)際上就是一些“ 斷言 (assert)”代碼
常用的斷言方法
方法 |
功能 |
assertEqual |
如果兩個(gè)值相等基显,則pass |
assertNotEqual |
如果兩個(gè)值不相等,則pass |
assertTrue |
判斷bool值為T(mén)rue,則pass |
assertFalse |
判斷bool值為False,則pass |
assertIsNone |
不存在善炫,則pass |
assertIsNotNone |
存在撩幽,則pass |
基本寫(xiě)法
- 先定義一個(gè)類(lèi),繼承自u(píng)nittest.TestCase
import unittest
class TestClass(unitest.TestCase)
pass
- 其次箩艺,在測(cè)試類(lèi)中窜醉,定義兩個(gè)測(cè)試方法
import unittest
class TestClass(unitest.TestCase)
pass
# 該方法會(huì)首先執(zhí)行,方法名為固定寫(xiě)法
def setUp(self):
pass
# 該方法會(huì)在測(cè)試代碼執(zhí)行完后執(zhí)行艺谆,方法名為固定寫(xiě)法
def tearDown(self):
pass
- 最后榨惰,在測(cè)試類(lèi)中,編寫(xiě)測(cè)試代碼
import unittest
class TestClass(unitest.TestCase)
pass
# 該方法會(huì)首先執(zhí)行静汤,方法名為固定寫(xiě)法
def setUp(self):
pass
# 該方法會(huì)在測(cè)試代碼執(zhí)行完后執(zhí)行琅催,方法名為固定寫(xiě)法
def tearDown(self):
pass
# 測(cè)試代碼
def test_app_exists(self):
pass