在測試某些模組時,需要session資料,而測試時啟動的客戶端與用瀏覽器訪問不同,不會儲存cookies,需要其他方法去模擬session
利用 with 語句建立乙個上下文環境訪問session
@patch(
'model.user.getpassword'
)def
test_userlogin200
(self, mock_getpwd)
: mock_getpwd.return_value =
'123456'
)as c:
rv = c.post(
'/users/root/login'
, content_type=
, data='')
self.assertequal(rv.status_code,
200)
assert session[
'username']==
'root'
使用 with 語句塊啟動乙個測試客戶端發出請求,在 with 塊中,可以使用這次請求的上下文資訊,如session
,request
等,利用這個方法就可以測試session中是否寫入自己期望的值
在前面的方法中,只能去訪問已有的session,不能建立session,要修改session,需要session_transaction
()
def
test_gettitle200
(self, mock_get_title):)
as c:
with c.session_transaction(
)as sess:
sess[
'username']=
'root'
rv = c.get(
'/users/root/title'
) self.assertequal(rv.status_code,
200)
assert b'test title'
in rv.data
這裡要特別注意縮排,在with c.session_transaction() as sess:
的塊中只修改session,剩下的請求工作要回到上一級的塊中,因為只有這個塊結束,這些修改才會寫入session。官網文件中這沒寫清楚,我全部寫到乙個塊裡後丟擲的異常比**還長=-=
這裡測試了乙個獲取標題的請求,在該請求中,會用session檢查使用者是否登陸,如果不修改session直接測試,返回401,加入session修改後,返回200,測試成功
測試 flask 應用
Flask單元測試post請求傳送資料
使用post請求傳送的資料,一般有兩種格式,一種是表單資料,一種是json資料,兩種資料在flask的後端獲取的操作也不同,對應的在測試時,模擬方式也不同 後端拿資料 request.form key request.form.get key 測試時構造 class restunittest tes...
Flask之單元測試(二十四)
參考文件 flask之單元測試 def num div num1,num2 assert 斷言 後面是乙個表示式,如果表示返回真,則斷言成功,程式能夠繼續往下執行 如果表示式返回的是假,則斷言失敗,assert會丟擲異常assertionerror,終止程式繼續往下執行 assert isinsta...
單元測試 單元測試文章收藏
前言 前段時間公司計畫做自動化測試,自己也打算圍繞幾個點做相關調研,現在想想呢?其實對自動化測試的概念都還不是十分清晰,當時主要還是圍繞 單元測試 向qa小夥伴學習了一段時間,現由於公司重組,學習中斷,這裡簡單記錄一些單元測試好文,留待後續參考.什麼叫自動化測試?自動化測試覆蓋率?覆蓋率如何做到的?...