私はテストに付随するFlaskの小さなアプリケーションを持っています。以前はDjangoのテストを使用していましたが、Flaskの下位レベルの機能を把握しています。テストスイートwith Flask with 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が「魔法」を提供するのに慣れてきました。フラスコのためにそこに良い模倣の図書館がありますか? –
あなたは任意のpythonモックライブラリ(例えば 'mock')を使うことができますが、データベースには' mongoengine'や 'pymongo'をすでに嘲笑しているパッケージがあります。別の質問を見てください:http://stackoverflow.com/a/16017141/880326。 – tbicr
もっと良い解決策を模索しますか?冗談じゃないわ。 Mockingは、API呼び出しを避け、テスト(単層テスト)や膨大な量のテストを高速化するのは素晴らしいことですが、DBにデータを作成しないようにすることは、テスト運転のようなものです。いいえ、解決策1はこの場合正しいものです。 –