Java >> Java tutorial >  >> Tag >> assert

Påstå, at en Java-valgfri har en vis værdi

1. Oversigt

Når vi tester metoder, der returnerer Valgfrit objekter, skal vi muligvis skrive påstande, der enten kontrollerer, om Valgfri har en værdi, eller kontroller værdien i den.

I dette korte selvstudie ser vi på, hvordan man skriver disse påstande ved hjælp af funktioner fra både JUnit og AssertJ.

2. Test, om en valgfri er tom eller ej

Hvis vi kun skal finde ud af, om Valgfri  har en værdi, kan vi hævde på isPresent eller er tom .

2.1. Test Valgfrit Har en værdi

Hvis en Valgfri har en værdi, kan vi hævde på Optional.isPresent :

assertTrue(optional.isPresent());

AssertJ-biblioteket giver dog en mere flydende måde at udtrykke dette på:

assertThat(optional).isNotEmpty();

2.2. Test valgfri er tom

Vi kan vende logikken, når vi bruger JUnit:

assertFalse(optional.isPresent());

Også i Java 11 og fremefter kan vi bruge Optional.isEmpty :

assertTrue(optional.isEmpty());

AssertJ giver os dog også et smart alternativ:

assertThat(optional).isEmpty();

3. Test af værdien af ​​en Valgfri

Ofte ønsker vi at teste værdien i en Valgfri  snarere end blot tilstedeværelse eller fravær.

3.1. Brug af JUnit Påstande

Vi kan bruge Optional.get for at angive værdien og derefter skrive en påstand om det:

Optional<String> optional = Optional.of("SOMEVALUE");
assertEquals("SOMEVALUE", optional.get());

Men ved at bruge get kan forårsage en undtagelse, som gør det sværere at forstå en testfejl. Så vi foretrækker måske først at hævde, om værdien er til stede:

assertTrue(optional.isPresent());
assertEquals("SOMEVALUE", optional.get());

Dog Valgfrit understøtter lig-metoden , så vi kan bruge en Valgfri med den korrekte værdi i det som en del af en generel ligestillingspåstand:

Optional<String> expected = Optional.of("SOMEVALUE");
Optional<String> actual = Optional.of("SOMEVALUE");
assertEquals(expected, actual);

3.2. Bruger AssertJ

Med AssertJ, vi kan bruge hasValue flydende påstand :

assertThat(Optional.of("SOMEVALUE")).hasValue("SOMEVALUE");

4. Konklusion

I denne artikel har vi set på et par måder at teste Valgfrit på .

Vi så, hvordan de indbyggede JUnit-påstande kan bruges med isPresent og hent . Vi så også, hvordan Optional.equals giver os en måde at sammenligne Valgfrit på objekter i vores påstande.

Til sidst så vi på AssertJ-påstandene, som giver os et flydende sprog for at kontrollere vores Valgfri værdier.

Som altid er koden, der præsenteres i denne artikel, tilgængelig på GitHub.


Java tag