Ho una piccola app in Flask che voglio accompagnare con i test. Ho usato i test di Django prima e sto solo facendo i conti con la funzionalità di livello inferiore in Flask.Test Suite in pallone con MongoEngine
miei test attualmente simile a questa:
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()
So che questo è sbagliato, perché i passi di prova, ma ho aggiunto una voce nel database. Come dovrei testare la creazione di un utente senza inquinare il database? Avevo dato per scontato che lo app.config['TESTING']
avesse un certo significato qui.
Qualsiasi aiuto molto apprezzato.
Grande. Stavo arrivando a questa conclusione: sono stato abituato a Djago a fornire la "magia". Ci sono buone librerie di beffe là fuori per Flask? –
Puoi usare qualsiasi libreria fittizia di Python (per esempio 'mock'), ma per trovare meglio il database qualche pacchetto che già sta deridendo' mongoengine' o 'pymongo'. Guarda un'altra domanda: http://stackoverflow.com/a/16017141/880326. – tbicr
Prendere in giro una soluzione migliore? Stai scherzando. Mocking è fantastico per evitare chiamate API, accelerare i test (test a livello singolo) e tonnellate di roba, ma usarlo per evitare di creare cose nel DB è come provare a guidare un'auto senza sederci sopra. No. Soluzione 1, quella giusta in questo caso. –