Mestrer test: JUnit, Mockito og integrationstest · Lektion

Skriv tests først

Øv dig i at skrive fejlslagne tests, der definerer den ønskede adfærd, før du implementerer produktionskode.

Lektion 2 af 411 trin

Skriv tests først er en gratis Mestrer test: JUnit, Mockito og integrationstest-lektion på CoddyKit. Dette er lektion 2 af 4. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i Mestrer test: JUnit, Mockito og integrationstest, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Mestrer test: JUnit, Mockito og integrationstest-kurset indeholder 4 lektioner i alt.

TDD's røde fase

Velkommen til kernen i testdrevet udvikling (TDD)! I denne lektion gennemgår vi det afgørende første trin: at skrive en fejlslagen test først.

Det kaldes ofte den røde fase i TDD-cyklussen, fordi du forventer at se en »rød bjælke«, der angiver en fejl, når du kører dine tests.

Hvorfor teste først?

Det kan føles kontraintuitivt at skrive en test for kode, der endnu ikke findes eller ikke er fuldt implementeret. Men denne tilgang har store fordele:

  • Klarhed: Den tvinger dig til at tænke over, hvad koden skal gøre, før du tænker over hvordan den skal gøre det.
  • Bevis på fejl: Den viser, at din test fungerer korrekt, ved at demonstrere, at den kan fejle. Hvis den består uden nogen kode, kan testen være defekt!
  • Fokus: Den giver dig et klart mål med det samme: Få denne ene test til at bestå.

Tests som specifikationer

Betragt din fejlslagne test som en præcis specifikation eller et lille krav. Den beskriver en bestemt adfærd, som din fremtidige kode skal udvise.

  • Den definerer inputtet.
  • Den definerer det forventede output eller resultat.
  • Den er konkret og kan køres.

Det hjælper med at forebygge misforståelser og sikrer, at din kode leverer præcis det, der er nødvendigt i det pågældende scenarie.

Scenarie: Enkel lommeregner

Lad os øve os ved at bygge en enkel klasse, Calculator. Vores første funktion skal kunne lægge to tal sammen.

Målet er at skrive en test for en add-metode, som fejler, før vi overhovedet skriver den korrekte implementering af add.

Design af den fejlslagne test

Før vi skriver kode, skal vi tænke over følgende:

  • Hvilket input? Vi lægger 2 og 3 sammen.
  • Hvilket output? Vi forventer, at resultatet er 5.
  • Hvilken metode? En metode kaldet add på et Calculator-objekt.

Vi skriver en test, der kalder calculator.add(2, 3) og hævder, at resultatet er 5.

Kodedemo: Den fejlslagne test

Her er et simuleret eksempel på at skrive en test først. Bemærk, at Calculator-klassens add-metode med vilje er forkert (den returnerer 0). Derfor fejler vores test, hvilket demonstrerer den røde fase.

Kør denne kode for at se den simulerede fejl!

public class Main {
    public static void main(String[] args) {
        System.out.println("Running a simulated test...");
        Calculator calculator = new Calculator();

        // Our test scenario: 2 + 3 should be 5
        int expected = 5;
        int actual = calculator.add(2, 3);

        if (expected == actual) {
            System.out.println("Test PASSED: 2 + 3 = " + actual);
        } else {
            System.out.println("Test FAILED: Expected " + expected + " but got " + actual);
            System.out.println("This is our 'Red' phase!");
        }
    }
}

// The production code (intentionally incorrect for 'Red' phase)
class Calculator {
    public int add(int a, int b) {
        return 0; // Wrong implementation to make the test fail
    }
}

Analyse af den røde fase

Efter at have kørt den forrige kode så du meddelelsen »Test FAILED«. Det var præcis det, vi ønskede!

  • Forventet: 5
  • Faktisk: 0

Denne fejl bekræfter to ting: Vores test er skrevet korrekt, og produktionskoden (metoden add) opfylder endnu ikke den angivne adfærd.

Tankegangen »mindst mulig kode«

Når du har en fejlslagen test, er næste trin i TDD (den grønne fase) at skrive den enklest mulige kode, der får testen til at bestå.

  • Overdesign ikke.
  • Tilføj ikke ekstra funktioner.
  • Fokuser bare på at opfylde den aktuelle fejlslagne test.

Det holder din kode ren og fokuseret, mens du opbygger funktionaliteten trin for trin.

Fordele ved at teste først

Hvis du tager TDD's røde fase til dig, fører det til:

  • Bedre design: Tests leder dig mod mere modulær kode, der er lettere at teste.
  • Større sikkerhed: Hver test, der består, giver dig større sikkerhed for, at din kode er korrekt.
  • Færre fejl: Problemer opdages tidligt, før de udvikler sig til komplekse problemer.
  • Levende dokumentation: Dine tests fungerer som opdaterede eksempler på, hvordan din kode skal bruges.

Hurtigt tjek af TDD's røde fase

Lad os teste din forståelse af den røde fase i testdrevet udvikling.

Opsummering: Den røde fase

Du har gennemgået det afgørende første trin i TDD: at skrive en fejlslagen test.

  • Den røde fase betyder, at du skriver en test, der fejler.
  • Denne test fungerer som en klar specifikation af ny funktionalitet.
  • Hvis testen fejler, bekræfter det, at den er gyldig, og at koden endnu ikke er korrekt.
  • Denne systematiske tilgang fører til klarere krav og mere robust kode.

Nu lærer vi, hvordan du får den fejlslagne test til at bestå – den grønne fase!

Gratis at komme i gang

Lær Mestrer test: JUnit, Mockito og integrationstest 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
12
Lektioner
48

Ofte stillede spørgsmål

Er lektionen “Skriv tests først” gratis?

Ja — alle 3 lektioner i læringssporet Mestrer test: JUnit, Mockito og integrationstest, inklusive “Skriv tests først”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Mestrer test: JUnit, Mockito og integrationstest-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “Skriv tests først”?

Øv dig i at skrive fejlslagne tests, der definerer den ønskede adfærd, før du implementerer produktionskode. Du øver dig i Mestrer test: JUnit, Mockito og integrationstest 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å Mestrer test: JUnit, Mockito og integrationstest?

Der kræves ingen tidligere erfaring. Mestrer test: JUnit, Mockito og integrationstest 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 2 af 4.

Hvor lang tid tager lektionen “Skriv tests først”?

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 Mestrer test: JUnit, Mockito og integrationstest-lektion?

Ja. Alle Mestrer test: JUnit, Mockito og integrationstest-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. Introduktion til TDD-cyklussen
  2. Skriv tests først
  3. Refaktorering med fokus på testbarhed
  4. TDD's tre love
← Tilbage til Mestrer test: JUnit, Mockito og integrationstest