Introduktion till JUnit

Introduktion till testning i Java

Maria Milusheva

Senior Software Engineer

Snabbfakta

  • JUnit är det populäraste Java-testbiblioteket
  • Det underhålls aktivt och uppdateras kontinuerligt

En bild av JUnit 5-logotypen.

Introduktion till testning i Java

Skriva ett JUnit-test

Låt oss skriva ett test för metoden addTwoNumbers():

public int addTwoNumbers(int a, int b) {
    return a + b;
}
Introduktion till testning i Java

JUnit-annotationen @Test

  • Installera JUnit via ett IDE eller byggverktyg (exempel i källhänvisningen)

  • Varje test måste ha annotationen @Test:

import org.junit.jupiter.api.Test;

@Test 
// Test method will be here

Annotation – särskild metadata som anger hur en metod ska hanteras av kompilatorer och ramverk. Annotationer börjar med @

1 https://www.jetbrains.com/help/idea/junit.html
Introduktion till testning i Java

JUnit-testets struktur

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); }
Introduktion till testning i Java

Assert-satser

  • Snabbt sätt att jämföra faktiska utfall med förväntade utfall
  • Om de inte stämmer överens misslyckas testet
  • Hjälper till att snabbt hitta buggar och fel

Grafik som illustrerar assert-satser

Introduktion till testning i Java

Testresultat

Ta påståendet som exempel:

assertEquals(4, actual); // Will succeed if actual == 4

Vid godkänt resultat visas meddelandet Test passed

Om värdena inte är lika, t.ex. actual = 5:

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

Kom ihåg argumentordningen! Det första argumentet är det förväntade värdet i JUnit.

Introduktion till testning i Java

Ytterligare test för heltalsspill

@Test 

void testAddTwoNumbers() { // Given int num1 = 2147483647; int num2 = 1; // When int actual = addTwoNumbers(num1, num2); // Then assertEquals(-2147483648, actual); }
Introduktion till testning i Java

Att tänka på om JUnit och testning

  • Ett test kan innehålla flera assert-satser
  • Alla assert-satser måste godkännas för att testet ska passera
  • Vi kan importera alla assertions med:
import org.junit.jupiter.api.Assertions.*;
Introduktion till testning i Java

Mer att tänka på

  • Följande är ett anpassat DataCamp-verktyg som inte behövs i ett IDE:
import static com.datacamp.util.testing.CustomJUnitTestLauncher.launchTestsAndPrint;
  • import static package.Class.method gör att du kan använda method direkt, utan att skriva package.Class.method
import static java.lang.Math.max;

...

max(3,5); // Instead of Math.max(3, 5)
Introduktion till testning i Java

Nu kör vi en övning!

Introduktion till testning i Java

Preparing Video For Download...