Flask'ta testlerle birlikte olmak istediğim küçük bir uygulamam var. Daha önce Django testlerini kullandım ve Flask'taki daha düşük seviyedeki işlevselliklerle uğraşıyorum.MongoEngine ile Flask'ta Test Suite
Benim testler şu anda şuna benzer:
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()
Ben testi geçtiği ama veritabanına bir girdi eklemiş çünkü bu, yanlış olduğunu biliyoruz. Veritabanını kirletmeden bir Kullanıcı yaratmayı nasıl test etmeliyim? Burada app.config['TESTING']
'un bir önemi olduğunu varsaymıştım.
Herhangi bir yardım çok takdir edilmektedir.
Harika. Bu sonuca varmaktaydım - 'sihir' sağlayan Djago'ya alıştım. Flask için orada iyi alaycı kütüphaneler var mı? –
Herhangi bir python alay kitaplığı kullanabilirsiniz (örneğin, 'mock'), ancak veritabanı için zaten '' mongoengine' veya 'pymongo' alay eden bir paket bulmak daha iyi. Başka bir soruya bakın: http://stackoverflow.com/a/16017141/880326. – tbicr
Daha iyi bir çözüm için mi? Şaka yapıyor olmalısın. Atama, API çağrılarını engellemek, testi hızlandırmak (tek katmanlı test) ve tonlarca şey yapmak için harikadır, ancak DB'de bir şeyler oluşturmamak için kullanmak, bir araba üzerinde oturmadan test sürüşü yapmak gibidir. Hayır. Çözüm 1 bu durumda doğru olanı. –