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