Flask Academy · Lektion

Testklienten og fixtures

Start en app og en klient til tests.

Lektion 1 af 413 trin

Testklienten og fixtures er en gratis Flask Academy-lektion på CoddyKit. Dette er lektion 1 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i Flask Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Flask Academy-kurset indeholder 4 lektioner i alt.

Derfor skal du teste din Flask-app

Tests lader dig ændre kode uden bekymringer. Med pytest kan du på få sekunder bevise, at hver route stadig virker, i stedet for at klikke dig gennem appen manuelt. 🧪

Mød testklienten

Flask leveres med en falsk browser kaldet test client. Den kalder dine routes i hukommelsen uden en rigtig server eller et netværk.

client = app.test_client()
resp = client.get('/')

Hent en klient fra din app

Du opretter klienten ved at kalde app.test_client(). Den returnerer et objekt, hvis metoder afspejler rigtige HTTP-verber som get og post.

from app import app
client = app.test_client()

Send en forespørgsel, og få et svar

Hvis du kalder client.get('/'), returneres et response-objekt. Du undersøger det ligesom et rigtigt svar, men alt kørte øjeblikkeligt inde i Python.

resp = client.get('/')
print(resp.status_code)

Hvad er en fixture

En fixture er genbrugelig opsætningskode, som pytest kører før en test. I stedet for at genopbygge klienten overalt definerer du den én gang og genbruger den.

Skriv en klient-fixture

Dekorér en funktion med @pytest.fixture, og giv en testklient videre med yield. Enhver test, der angiver den som argument, modtager en ny klient.

@pytest.fixture
def client():
    yield app.test_client()

Anmod om en fixture via navnet

Hvis du vil bruge en fixture, skal du blot tilføje dens navn som et test argument. Pytest finder matchningen og indsætter automatisk værdien for dig.

def test_home(client):
    resp = client.get('/')
    assert resp.status_code == 200

Yield kontra return i fixtures

Med yield kan du køre oprydning, efter testen er færdig. Kode før yield er opsætning; kode efter yield rydder alt ned.

@pytest.fixture
def client():
    yield app.test_client()
    print('cleanup here')

Hvor skal fixtures placeres

Placér delte fixtures i en fil med navnet conftest.py. Pytest finder den automatisk, så alle testfiler kan bruge disse fixtures uden import.

Navngiv testfiler

Pytest finder filer, der begynder med test_, og funktioner, der er navngivet på samme måde. Følg det mønster, så kører dine tests med én kommando.

# file: test_routes.py
def test_home(client):
    ...

Kør hele testsamlingen

Kør blot pytest i terminalen fra projektets rodmappe. Den indsamler alle testfiler, kører dem og viser en overskuelig oversigt over beståede og mislykkede tests.

$ pytest
2 passed in 0.04s

Hurtigt tjek

Du vil have en genbrugelig testklient. Hvordan gør du?

Opsummering: Klient og fixtures

Du har mødt den testklient, der kører i hukommelsen, og lært at dele den med en fixture i conftest.py. Nu starter hver test med en klient, der er klar. 🎉

Gratis at komme i gang

Lær Python med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
30
Lektioner
120

Ofte stillede spørgsmål

Er lektionen “Testklienten og fixtures” gratis?

Ja — hele teksten til “Testklienten og fixtures” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af Flask Academy-kurset, skal du opgradere til CoddyKit PRO. Flask Academy-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “Testklienten og fixtures”?

Start en app og en klient til tests. Du øver dig i Flask Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på Flask Academy?

Der kræves ingen tidligere erfaring. Flask Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 1 af 4.

Hvor lang tid tager lektionen “Testklienten og fixtures”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne Flask Academy-lektion?

Ja. Alle Flask Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. Testklienten og fixtures
  2. Assert på routes og JSON
  3. Isolér tests med en testdatabase
  4. Test autentificerede endpoints
← Tilbage til Flask Academy