Testen beheersen: JUnit, Mockito en integratietesten · Les

Voorwaardelijke tests en aannames

Bepaal wanneer tests in JUnit 5 worden uitgevoerd met annotaties voor voorwaardelijke uitvoering en aannames, zodat uw suite zich aanpast aan het besturingssysteem, de omgeving en runtimeomstandigheden.

Les 4 van 413 stappen

Voorwaardelijke tests en aannames is een gratis Testen beheersen: JUnit, Mockito en integratietesten-les op CoddyKit. Dit is les 4 van 4. Je kunt 3 lessen uit dit leerpad gratis volledig lezen — daarna ontgrendelt CoddyKit PRO alle lessen, plus praktische oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Testen beheersen: JUnit, Mockito en integratietesten. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Testen beheersen: JUnit, Mockito en integratietesten bevat in totaal 4 lessen.

Niet elke test past bij elke omgeving

Sommige tests zijn alleen zinvol op een bepaald besturingssysteem, een bepaalde JRE of wanneer een service beschikbaar is. Als u ze overal uitvoert, ontstaan er fout-positieve mislukkingen.

JUnit 5 biedt voorwaardelijke uitvoering en aannames om hier op een nette manier mee om te gaan.

Tests uitschakelen en inschakelen

De eenvoudigste regeling is @Disabled, waarmee een test volledig wordt overgeslagen. Voeg altijd een reden toe, zodat het team weet waarom.

@Test
@Disabled("flaky until APIv2 lands")
void legacyFlow() { /* ... */ }

Besturingssysteemspecifieke tests

Gebruik @EnabledOnOs of @DisabledOnOs om een test alleen op bepaalde platforms uit te voeren. Dit is ideaal voor tests van bestandssystemen of paden.

@Test
@EnabledOnOs(OS.WINDOWS)
void usesBackslashPaths() { /* ... */ }

Voorwaarden voor JRE-versies

@EnabledOnJre en @EnabledForJreRange beperken tests op basis van de Java-versie. Dit is nuttig wanneer een functie alleen in nieuwere runtimes bestaat.

@Test
@EnabledForJreRange(min = JRE.JAVA_17)
void usesSealedClasses() { /* ... */ }

Voorwaarden voor omgevingsvariabelen

Voer een test alleen uit wanneer een omgevingsvariabele overeenkomt. Dit is ideaal voor tests die een specifieke implementatiecontext nodig hebben.

@Test
@EnabledIfEnvironmentVariable(named = "ENV", matches = "ci")
void runsOnlyInCi() { /* ... */ }

Voorwaarden voor systeemeigenschappen

Op vergelijkbare wijze beperkt @EnabledIfSystemProperty een test op basis van een JVM-systeemeigenschap, zodat u suites vanaf de opdrachtregel kunt in- of uitschakelen.

@Test
@EnabledIfSystemProperty(named = "db", matches = "integration")
void hitsRealDatabase() { /* ... */ }

Aangepaste voorwaarden

Voor complexe logica verwijst @EnabledIf naar een methode die een boolean retourneert. De test wordt alleen uitgevoerd als de methode true retourneert.

@Test
@EnabledIf("serverIsReachable")
void callsServer() { /* ... */ }

Annotaties tegenover aannames

Voorwaardelijke annotaties beslissen voordat een test start. Aannames beslissen halverwege: als een aanname niet klopt, wordt de test afgebroken (overgeslagen) en niet als mislukt gemarkeerd.

assumeTrue gebruiken

assumeTrue breekt de test af wanneer niet aan een runtimevoorwaarde wordt voldaan. De overige beweringen worden dan niet uitgevoerd en de test wordt als overgeslagen gemarkeerd.

@Test
void onlyWhenOnline() {
    assumeTrue(network.isUp());
    assertNotNull(client.fetch());
}

assumingThat voor gedeeltelijke uitvoeringen

assumingThat voert een blok beweringen alleen uit als aan een voorwaarde wordt voldaan, terwijl de rest van de test altijd wordt uitgevoerd.

assumingThat(isCi(), () -> {
    assertEquals("prod", config.profile());
});
assertNotNull(config);

Best practices

Gebruik voorwaarden verstandig:

  • Geef de voorkeur aan annotaties voor statische voorwaarden die vooraf bekend zijn
  • Gebruik aannames voor runtimecontroles
  • Geef @Disabled altijd een reden
  • Voorkom dat u te veel tests overslaat, want daardoor blijven echte hiaten in de dekking verborgen

Snelle controle

Test uw kennis van voorwaardelijke uitvoering.

Samenvatting

U hebt bepaald wanneer tests worden uitgevoerd:

  • @Disabled slaat tests over; annotaties voor besturingssysteem, JRE, omgeving en eigenschappen beperken tests
  • @EnabledIf verwerkt aangepaste voorwaarden
  • Aannames breken tests tijdens runtime af (slaan ze over), in plaats van ze te laten mislukken
  • assumingThat voert beweringen voorwaardelijk gedeeltelijk uit

Dankzij voorwaardelijke uitvoering blijft uw suite groen in uiteenlopende omgevingen.

Gratis beginnen

Leer Testen beheersen: JUnit, Mockito en integratietesten 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
12
Lessen
48

Veelgestelde vragen

Is de les “Voorwaardelijke tests en aannames” gratis?

Ja — je kunt hier op het web alle 3 lessen van het leerpad Testen beheersen: JUnit, Mockito en integratietesten, waaronder “Voorwaardelijke tests en aannames”, gratis volledig lezen. Daarna ontgrendelt CoddyKit PRO alle lessen, plus interactieve oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. De cursus Testen beheersen: JUnit, Mockito en integratietesten bevat in totaal 4 lessen.

Wat leer ik in “Voorwaardelijke tests en aannames”?

Bepaal wanneer tests in JUnit 5 worden uitgevoerd met annotaties voor voorwaardelijke uitvoering en aannames, zodat uw suite zich aanpast aan het besturingssysteem, de omgeving en runtimeomstandighed… Je oefent met Testen beheersen: JUnit, Mockito en integratietesten 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 Testen beheersen: JUnit, Mockito en integratietesten te beginnen?

Ervaring vooraf is niet nodig. Testen beheersen: JUnit, Mockito en integratietesten 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 4 van 4.

Hoe lang duurt de les “Voorwaardelijke tests en aannames”?

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 Testen beheersen: JUnit, Mockito en integratietesten?

Ja. Elke les over Testen beheersen: JUnit, Mockito en integratietesten 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. Testlevenscyclus en -volgorde
  2. Geparametriseerde en dynamische tests
  3. Exceptiontests en time-outs
  4. Voorwaardelijke tests en aannames
← Terug naar Testen beheersen: JUnit, Mockito en integratietesten