5
我有一個Flask小應用程序,我想伴隨測試。我之前使用過Django測試,並且我正在考慮使用Flask中的低級功能。測試套件在燒瓶與MongoEngine
我的測試目前是這樣的:
import unittest
from config import app
from mongoengine import connect
from my_app.models import User
class TestCase(unittest.TestCase):
def setUp(self):
app.config['TESTING'] = True
app.config["MONGODB_DB"] = 'xxx'
connect(
'xxx',
username='heroku',
password='xxx',
host='xxx',
port=xxx
)
self.app = app.test_client()
def tearDown(self):
pass
def test_create_user(self):
u = User(username='john', email='[email protected]')
u.save()
我知道,這是不對的,因爲測試通過,但我增加了一個進入數據庫。我應該如何測試用戶的創建而不污染數據庫?我曾假設app.config['TESTING']
在這裏有一些意義。
任何幫助非常感謝。
太好了。我得出這個結論 - 我已經習慣了Djago提供'魔術'。 Flask有沒有好的模擬庫? –
你可以使用任何python模擬庫(例如'mock'),但對於數據庫更好找到一些已經嘲弄'mongoengine'或'pymongo'的包。看看另一個問題:http://stackoverflow.com/a/16017141/880326。 – tbicr
嘲諷更好的解決方案?你一定是在開玩笑。嘲諷對於避免API調用,加速測試(單層測試)和大量東西,但是使用它來避免在數據庫中創建東西就像測試駕駛汽車而不坐在它上面是奇妙的。否。解決方案1在這種情況下是正確的。 –