Flask Academy · Les

Tests isoleren met een testdatabase

Gebruik per testrun een wegwerpdatabase.

Les 3 van 413 stappen

Tests isoleren met een testdatabase is een gratis Flask Academy-les op CoddyKit. Dit is les 3 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Flask Academy. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Flask Academy bevat in totaal 4 lessen.

Waarom je de database isoleert

Tests mogen nooit je echte gegevens aanraken. Een testdatabase houdt elke uitvoering schoon, zodat de ene test nooit een andere test of rijen in productie kan beschadigen.

Een tijdelijke SQLite-database gebruiken

De eenvoudigste keuze is een SQLite-database in het geheugen. Deze bestaat alleen in het RAM en verdwijnt zodra het testproces eindigt.

app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///:memory:'

De testconfiguratie inschakelen

Stel TESTING in op True voordat de tests worden uitgevoerd. Hierdoor wordt het opvangen van fouten uitgeschakeld, zodat uitzonderingen duidelijk in je uitvoer verschijnen.

app.config['TESTING'] = True

Een leeg schema opbouwen

Roep binnen een app-context db.create_all() aan. Hiermee worden alle tabellen uit je modellen opgebouwd, zodat elke testuitvoering met een leeg schema begint.

with app.app_context():
    db.create_all()

Opruimen na de tests

Roep na de test db.drop_all() aan om alle tabellen te verwijderen. Zo weet je zeker dat de volgende uitvoering geen achtergebleven rijen overneemt.

with app.app_context():
    db.drop_all()

Dit in een fixture plaatsen

Verpak het instellen en opruimen in één fixture. De code vóór yield maakt het schema aan; de code erna verwijdert alles netjes.

@pytest.fixture
def app_db():
    db.create_all()
    yield
    db.drop_all()

Voorbeeldgegevens toevoegen

Veel tests hebben een bekende rij nodig om te kunnen lezen. Voeg een record toe in de fixture en commit dit, zodat de test met een voorspelbare toestand begint.

db.session.add(User(name='Ada'))
db.session.commit()

Waarom een schone toestand belangrijk is

Tests moeten in elke volgorde slagen. Isolatie betekent dat elke test dezelfde begingegevens ziet, zodat resultaten nooit afhangen van wat daarvoor is uitgevoerd.

Tussen tests terugdraaien

Een alternatief voor het opnieuw maken van tabellen is een rollback. Plaats elke test in een transactie en draai die daarna terug voor een snelle, schone begin toestand.

db.session.rollback()

De testconfiguratie gescheiden houden

Bewaar testinstellingen in een speciale klasse TestConfig. Je factory laadt deze alleen tijdens tests, nooit tijdens ontwikkeling of in productie.

class TestConfig:
    TESTING = True
    SQLALCHEMY_DATABASE_URI = 'sqlite:///:memory:'

Nooit tegen productie testen

Controleer altijd of de URI naar een testdatabase verwijst. Tests naar productiegegevens laten wijzen is de snelste manier om echte records kwijt te raken.

Snelle controle

Je wilt tests die echte gegevens nooit beschadigen. Welke database gebruik je?

Samenvatting: testdatabase

Je start een schone testdatabase op, voegt bekende gegevens toe en ruimt alles daarna op. Nu zijn je tests snel, herhaalbaar en veilig. 🗄️

Gratis beginnen

Leer Python met een AI-tutor — gratis

Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.

Cursussen
30
Lessen
120

Veelgestelde vragen

Is de les “Tests isoleren met een testdatabase” gratis?

Ja — de volledige tekst van “Tests isoleren met een testdatabase” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus Flask Academy wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus Flask Academy bevat in totaal 4 lessen.

Wat leer ik in “Tests isoleren met een testdatabase”?

Gebruik per testrun een wegwerpdatabase. Je oefent met Flask Academy door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.

Heb ik ervaring nodig om met Flask Academy te beginnen?

Ervaring vooraf is niet nodig. Flask Academy op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 3 van 4.

Hoe lang duurt de les “Tests isoleren met een testdatabase”?

De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.

Kan ik code schrijven en uitvoeren in deze les over Flask Academy?

Ja. Elke les over Flask Academy bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.

Alle lessen in deze cursus

  1. De testclient en fixtures
  2. Routes en JSON controleren
  3. Tests isoleren met een testdatabase
  4. Geauthenticeerde endpoints testen
← Terug naar Flask Academy