單元測試(1)

2021-08-19 08:50:08 字數 3269 閱讀 2993

為什麼引入單元測試

單元測試:對軟體設計的最小單元進行正確性檢測的測試,將可能存在的錯誤在最小範圍內發現解決

單元測試的目的:發現模組內部邏輯,語法,演算法,功能的錯誤

單元測試方法:**級別測試和模組功能測試

**級別測試:

熟悉模組功能,內部邏輯與介面,編寫測試用例:

1.     介面測試:確保資料結構可用,例如資料庫,檔案,自定義資料結構

2.     資料結構測試,確保資料結構可用,例如資料庫、檔案、自定義資料結構

3.     邊界測試:對邊界值進行檢測

通常測試用例的編寫

例1://先編寫一段需要測試的**,add函式,支援兩個及以上的數字相加

def add(x,y,*arg):

x+=y

forval in arg:

x+=val

returnx

//測試用例:

//1.兩個數的相加

print(『add 2』,add(10,10) == 20)

//2.多個數的相加

print(『add 3』,add(10,20,10) == 40)

引入unittest測試框架

unittest:python內建的乙個單元測試模組,針對於python進行單元測試

unittest完整測試用例:

1.     測試環境準備

2.     測試**執行

3.     測試環境還原

4.     測試結果分析

使用unittest測試add,sub,sum函式:

例:import unittest

//匯入要測試的函式方法

from count import add,sub

//繼承

unittest

的testcase

類class unittestadd(unittest.testcase)://

初始化測試環境,此測試中不需要相關初始化動作

def setup(self):

pass

//恢復現場,此測試中不需要相關恢復動作

def teardown(self):

pass

//測試

def runtest(self)

print(add(10,20) ==30)

//測試

sub類

class testsub(unittest.testcase)

def runtest(self)

print(sub(10,5) == 5)

if __name__==』_main_』

demo_add = unittestadd();

//run

方法:先執行

setup

,然後runtest

,最後teardown

demo_add.run()

demo_sub =testsub()

demo_sub.run()

使用unittest編寫測試用例

要測試的**:

class count(object):

def add(self,x,y):

return x+y

def sub(self,x,y):

return x-y

if__name__ == 』_main_』:

c= count();

測試模組:

import unittest

from count import count

class testcount(unittest.testcase)

defsetup(self):

//初始環境時,例項化測試物件

self.obj = count()

defteardown(self):

//恢復環境時,將物件置為none

self.obj= none

def add_test(self):

print(self.obj.add(10,20) == 30)

def sub_test(self):

print(self.obj.sub(10,5) == 5)

if __name__ == 『_main_』:

//傳入需要測試的方法,就可以實現乙個類中測試兩個方法

demo_count_add =testcount (『add_test』)

demo_count_add.run ()

demo_count_sub = testcount(『sub_test』)

demo_count_sub.run()

引入測試集:

unittest.testsuite:測試用例的測試集,存放測試用例的容器

新增測試用例到測試集中:addtest(self,test)—新增乙個測試用例

addtests(self,tests)—新增多個測試用例

__init__方法直接新增測試用例

測試類:

import unittest

from count import count

class testcount(unittest.testcase)

defsetup(self):

self.obj = count()

defteardown(self):

self.obj= none

def add_test(self):

print(self.obj.add(10,20) == 30)

def sub_test(self):

print(self.obj.sub(10,5) == 5)

def get_suite():

demo_count_add = testcount (『add_test』)

demo_count_sub = testcount(『sub_test』)

//建立乙個測試集

suite = unittest.testsuite()

//新增測試用例到測試集中

suite.add(demo_count_add)

suite.add(demo_count_sub)

if __name__ == 『_main_』:

s = get_suite()

//輸出測試集的測試個數

print(s.counttestcases())

//要執行測試集,必須建立

runner

物件runner = unittest.texttestrunner()

runner.run(s)

單元測試1

總結應該盡早地進行軟體單元測試。應該保證單元測試的可重複性。盡可能地採用測試自動化的手段來支援單元測試活動。單元模組被正確編碼 資訊能否正確地流入和流出單元 在單元工作過程中,其內部資料能否保持其完整性,包括內部資料的形式 內容及相互關係不發生錯誤,也包括全域性變數在單元中的處理和影響。在為限制資料...

單元測試1

python為我們提供了unittest包用來進行單元測試,還是以count這個類為例。class count def init self,a,b self.a a self.b b defadd self return self.a self.b下面就對count進行單元測試。import uni...

IOS單元測試(1)

本文不討論單元測試是什麼,或者它之於乙個工程的利弊,我認為單元測試是乙個開發者保證產出 質量的有效工具。本文從使用者的角度對比當下比較流行的兩款單元測試框架,給大家提供 閱讀器ios開發 作者高嘉峻 微博 gaosboy segmentfault.com聯合創始人,杭州ios開發者沙龍發起人,資深i...