W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
為了測(cè)試這個(gè)引用,我們添加了第二個(gè)模塊(flaskr_tests.py), 并且創(chuàng)建了一個(gè)框架如下:
import os
import flaskr
import unittest
import tempfile
class FlaskrTestCase(unittest.TestCase):
def setUp(self):
self.db_fd, flaskr.app.config['DATABASE'] = tempfile.mkstemp()
flaskr.app.config['TESTING'] = True
self.app = flaskr.app.test_client()
flaskr.init_db()
def tearDown(self):
os.close(self.db_fd)
os.unlink(flaskr.app.config['DATABASE'])
if __name__ == '__main__':
unittest.main()
在 setUp() 方法的代碼創(chuàng)建了一個(gè)新的測(cè)試 客戶端并且初始化了一個(gè)新的數(shù)據(jù)庫(kù)。這個(gè)函數(shù)將會(huì)在每次獨(dú)立的測(cè)試函數(shù) 運(yùn)行之前運(yùn)行。要在測(cè)試之后刪除這個(gè)數(shù)據(jù)庫(kù),我們?cè)?tearDown() 函數(shù)當(dāng)中關(guān)閉這個(gè)文件,并將它從文件系統(tǒng)中刪除。同時(shí),在初始化的時(shí)候 TESTING 配置標(biāo)志被激活,這將會(huì)使得處理請(qǐng)求時(shí)的錯(cuò)誤捕捉失效,以便于 您在進(jìn)行對(duì)應(yīng)用發(fā)出請(qǐng)求的測(cè)試時(shí)獲得更好的錯(cuò)誤反饋。
這個(gè)測(cè)試客戶端將會(huì)給我們一個(gè)通向應(yīng)用的簡(jiǎn)單接口,我們可以激發(fā) 對(duì)向應(yīng)用發(fā)送請(qǐng)求的測(cè)試,并且此客戶端也會(huì)幫我們記錄 Cookie 的 動(dòng)態(tài)。
因?yàn)?SQLite3 是基于文件系統(tǒng)的,我們可以很容易的使用臨時(shí)文件模塊來 創(chuàng)建一個(gè)臨時(shí)的數(shù)據(jù)庫(kù)并初始化它,函數(shù) mkstemp() 實(shí)際上完成了兩件事情:它返回了一個(gè)底層的文件指針以及一個(gè)隨機(jī) 的文件名,后者我們用作數(shù)據(jù)庫(kù)的名字。我們只需要將 db_fd 變量 保存起來,就可以使用 os.close 方法來關(guān)閉這個(gè)文件。
如果我們運(yùn)行這套測(cè)試,我們應(yīng)該會(huì)得到如下的輸出:
$ python flaskr_tests.py
----------------------------------------------------------------------
Ran 0 tests in 0.000s
OK
雖然現(xiàn)在還未進(jìn)行任何實(shí)際的測(cè)試,我們已經(jīng)可以知道我們的 flaskr 程序沒有語法錯(cuò)誤了。否則,在 import 的時(shí)候就會(huì)拋出一個(gè)致死的 錯(cuò)誤了。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: