在發佈到我的燒瓶應用程序的url上的不同輸入值中,閃爍不同的消息,例如, '沒有輸入數據','輸入無效','找不到記錄','找到3條記錄'。在燒瓶應用程序前端測試中檢查Flash消息
有人可以指導我如何寫鼻子測試來檢查是否顯示正確的閃光信息?我猜閃光消息首先到達會話......我們如何在鼻子測試中檢查會話變量?
謝謝
在發佈到我的燒瓶應用程序的url上的不同輸入值中,閃爍不同的消息,例如, '沒有輸入數據','輸入無效','找不到記錄','找到3條記錄'。在燒瓶應用程序前端測試中檢查Flash消息
有人可以指導我如何寫鼻子測試來檢查是否顯示正確的閃光信息?我猜閃光消息首先到達會話......我們如何在鼻子測試中檢查會話變量?
謝謝
下面是一個示例測試,聲明預期的Flash消息存在。它是基於該方法described here:
def test_should_flash_warning_message_when_no_record_found(self):
# Arrange
client = app.test_client()
# Assume
url = '/records/'
expected_flash_message = 'no record found'
# Act
response = client.get(url)
with client.session_transaction() as session:
flash_message = dict(session['_flashes']).get('warning')
# Assert
self.assertEqual(response.status_code, 200, response.data)
self.assertIsNotNone(flash_message, session['_flashes'])
self.assertEqual(flash_message, expected_flash_message)
注:session['_flashes']
將是一個元組列表。事情是這樣的:
[(u'warning', u'no records'), (u'foo', u'Another flash message.')]
檢測與閃亮會話[「_閃爍」]的方法,並沒有爲我工作,因爲會話對象根本沒有「_flashes」屬性在我的情況:
with client.session_transaction() as session:
flash_message = dict(session['_flashes']).get('warning')
KeyError: '_flashes
'
這可能是因爲最近的燒瓶中,我使用Python 3.6.4可以使用不同的工作,其他包的版本,我真的不知道......
對我來說簡單明瞭:
def test_flash(self):
# attempt login with wrong credentials
response = self.client.post('/authenticate/', data={
'email': '[email protected]',
'password': '1234'
}, follow_redirects=True)
self.assertTrue(re.search('Invalid username or password',
response.get_data(as_text=True)))
在我的情況下,閃光消息是'無效的用戶名或密碼'。
我認爲它也比較容易閱讀。希望它能幫助那些遇到類似問題的人