Introductie tot JUnit

Introductie tot testen in Java

Maria Milusheva

Senior Software Engineer

Snelle feiten

  • JUnit is de populairste Java-testbibliotheek
  • Goed onderhouden en continu bijgewerkt

Een afbeelding van het JUnit 5-logo.

Introductie tot testen in Java

Een JUnit-test schrijven

Laten we een test schrijven voor de methode addTwoNumbers():

public int addTwoNumbers(int a, int b) {
    return a + b;
}
Introductie tot testen in Java

JUnit-annotatie @Test

  • Installeer JUnit via een IDE of buildtool (voorbeeld in de bron)

  • Elke test heeft de annotatie @Test nodig:

import org.junit.jupiter.api.Test;

@Test 
// Testmethode komt hier

Annotatie - speciale metadata die aangeeft hoe de methode door compilers en frameworks moet worden behandeld. Annotaties beginnen met @

1 https://www.jetbrains.com/help/idea/junit.html
Introductie tot testen in Java

Structuur van een JUnit-test

import org.junit.jupiter.api.Test;

@Test 

void testAddTwoNumbers() {
// Arrange - Given int num1 = 2; int num2 = 2;
// Act - When int actual = addTwoNumbers(num1, num2);
// Assert - Then assertEquals(4, actual); }
Introductie tot testen in Java

Assert-statements

  • Snelle manier om actuele uitkomsten met verwachte te vergelijken
  • Als verwacht en actueel niet overeenkomen, faalt de test
  • Helpt bugs en fouten snel vinden

Grafiek die een assert-statement voorstelt

Introductie tot testen in Java

Testresultaten

Bekijk de assertie:

assertEquals(4, actual); // Slaagt als actual == 4

Bij succes verschijnt Test passed

Als de waarden niet gelijk zijn, bv. actual = 5:

org.opentest4j.AssertionFailedError: expected: <4> but was: <5>

Onthoud de argumentvolgorde! In JUnit is het eerste argument de verwachte waarde.

Introductie tot testen in Java

Extra test voor overflow

@Test 

void testAddTwoNumbers() { // Given int num1 = 2147483647; int num2 = 1; // When int actual = addTwoNumbers(num1, num2); // Then assertEquals(-2147483648, actual); }
Introductie tot testen in Java

Notities over JUnit en testen

  • Er kunnen meerdere asserts per test staan
  • Alle asserts moeten slagen voor een geslaagde test
  • Importeer alle asserts met:
import org.junit.jupiter.api.Assertions.*;
Introductie tot testen in Java

Meer notities

  • Dit is een aangepaste Datacamp-tool, niet nodig in je IDE:
import static com.datacamp.util.testing.CustomJUnitTestLauncher.launchTestsAndPrint;
  • import static package.Class.method laat je method direct gebruiken, zonder package.Class.method te schrijven
import static java.lang.Math.max;

...

max(3,5); // In plaats van Math.max(3, 5)
Introductie tot testen in Java

Laten we oefenen!

Introductie tot testen in Java

Preparing Video For Download...