python flask如何編寫測試案例 入門

2021-09-19 07:07:14 字數 2338 閱讀 6211

自動話測試最常見的形式是單元測試(unit test)

單元測試是指對程式**最小的單元進行測試,例如python函式或方法

python內建了乙個單元測試框架 -----unittest

unittest主要包含一下幾個概念

測試用例(test case)

最小的測試單元。繼承於unittest.testcase的類。

測試韌體(test fixture)

需要準備測試所需要的前期工作和後期清理工作的測試用例。

前期準備工作:測試用例中實現setup()setupclass()

後期清理工作:測試用例中實現teardown()teardownclass()

後面的兩個方法都需要接受乙個類作為引數,並且附加classmethod裝飾器。

測試集(test suite)

他是乙個測試用例的集合

測試執行器(test runner)

用來測試和執行測試,並呈現給使用者

class

basetestcase

(unittest.testcase)

:def

setpup

(self)

:'develop'

) testing=

true

, wtf_csrf_enabled=

false,)

defteardown

(self)

: clear(

)

flask-wtf缺省會開啟csrf保護,但是測試時,不需要驗證csrf,開啟csrf會讓post變得困難。所以這裡關閉csrf保護

測試也會對資料庫進行修改,為了不影響資料,使用單獨的資料庫。這裡用sqlite

直接在以上的**中,嵌入測試方法,測試方法以test_開頭。測試執行器才會識別為測試並呼叫

class

basetestcase()

:...

def(self)

:none).

..

斷言是用來告訴執行器本次執行是否符合預期。

常用的斷言方法如下:

方法驗證情況

assertequal(a,b)

a==b

assertnotequal(a,b)

a!=b

asserttrue(x)

x is true

assertfalse(x)

x is false

assertis(a,b)

a is b

assertisnot(a,b)

a is not b

assertisnone(x)

x is none

assertisnotnone(x)

x is not none

assertin(a,b)

a in b

assernotin(a,b)

a not in b

assertisinstance(a,b)

isinstance(a,b)

assertnotisinstance(a,b)

not isinstance(a,b)

以上是常用的斷言方法。

在測試時,是沒有flask上下文存在的。但是有些測試必須依賴於這些上下文。

我們需要顯式的推送上下文,需要在setup中推送,在teardown中刪除。

class

basetestcase

(unittest.testcase)

:def

setpup

(self)

:'develop'

) testing=

true

, wtf_csrf_enabled=

false,)

)###建立上下文物件

self.context.push(

)###推送上下文

) db.create_all(

)def

teardown

(self)

: clear(

)

未完待續

python flask 如何實現http介面

為什麼要做這個?mock 第三方服務時,需要使用,另外包括自身開發,有時也會用到python 檢測是否有資料 return fail params request.data.decode utf 8 獲取到post過來的資料,因為我這裡傳過來的資料需要轉換一下編碼。根據晶具體情況而定 prams j...

python Flask 擴充套件

flask有兩大核心 werkzeug和jinja2。werkzeug實現路由 除錯和web伺服器閘道器介面。jinja2實現了模板。flask框架是以werkzeug為基礎實現的。werkzeug是乙個遵循wsgi協議的python函式庫。其內部實現了很多web框架底層的東西,比如request和...

起步,Python Flask記錄

首次寫部落格,主要為記錄一下這幾天來一直在學習的乙個python的框架flask。安裝flask需要用到pip或easy install 可選擇是否使用virtuanlenv安裝框架,這種安裝方式需要每次啟動時,都要進入python虛擬環境中。用命令 pip install virtualenv 安...