Flask 第一個(gè)測(cè)試

2022-02-24 09:30 更新

是進(jìn)行第一個(gè)應(yīng)用功能的測(cè)試的時(shí)候了。讓我們檢查當(dāng)我們?cè)L問(wèn) 根路徑(/)時(shí)應(yīng)用程序是否正確地返回了了“No entries here so far” 字樣。為此,我們添加了一個(gè)新的測(cè)試函數(shù)到我們的類(lèi)當(dāng)中, 如下面的代碼所示:

class FlaskrTestCase(unittest.TestCase):

    def setUp(self):
        self.db_fd, flaskr.app.config['DATABASE'] = tempfile.mkstemp()
        self.app = flaskr.app.test_client()
        flaskr.init_db()

    def tearDown(self):
        os.close(self.db_fd)
        os.unlink(flaskr.DATABASE)

    def test_empty_db(self):
        rv = self.app.get('/')
        assert 'No entries here so far' in str(rv.data)

注意到我們的測(cè)試函數(shù)以 test 開(kāi)頭,這允許 unittest 模塊自動(dòng) 識(shí)別出哪些方法是一個(gè)測(cè)試方法,并且運(yùn)行它。

通過(guò)使用 self.app.get 我們可以發(fā)送一個(gè) HTTP GET 請(qǐng)求給應(yīng)用的 某個(gè)給定路徑。返回值將會(huì)是一個(gè) response_class 對(duì)象。我們可以使用 data 屬性 來(lái)檢查程序的返回值(以字符串類(lèi)型)。在這里,我們檢查 'No entries here so far' 是不是輸出內(nèi)容的一部分。

再次運(yùn)行,您應(yīng)該看到一個(gè)測(cè)試成功通過(guò)了:

$ python flaskr_tests.py
.
----------------------------------------------------------------------
Ran 1 test in 0.034s

OK
以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)