Introducere în JUnit

Introducere în testarea în Java

Maria Milusheva

Senior Software Engineer

Fapte rapide

  • JUnit este cea mai populară bibliotecă de testare Java
  • Este bine întreținută și actualizată constant

O imagine cu logo-ul JUnit 5.

Introducere în testarea în Java

Scrierea unui test JUnit

Să scriem un test pentru metoda addTwoNumbers():

public int addTwoNumbers(int a, int b) {
    return a + b;
}
Introducere în testarea în Java

Adnotarea JUnit @Test

  • Instalați JUnit folosind un IDE sau instrumente de build (exemplu în citare)

  • Fiecare test trebuie să aibă adnotarea @Test:

import org.junit.jupiter.api.Test;

@Test 
// Metoda de test va fi aici

Adnotare - metadate speciale care indică cum trebuie tratată metoda de compilatoare și framework-uri. Adnotările încep cu @

1 https://www.jetbrains.com/help/idea/junit.html
Introducere în testarea în Java

Structura unui test JUnit

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); }
Introducere în testarea în Java

Instrucțiuni assert

  • Modalitate rapidă de a compara rezultatele reale cu cele așteptate
  • Dacă nu se potrivesc, testul eșuează
  • Ajută la depistarea rapidă a erorilor

Grafic reprezentând o instrucțiune assert

Introducere în testarea în Java

Rezultatele testelor

Considerați afirmația:

assertEquals(4, actual); // Va reuși dacă actual == 4

Dacă reușește, va produce mesajul Test passed

Dacă valorile nu sunt egale, ex. actual = 5:

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

Atenție la ordinea argumentelor! Primul argument este cel așteptat în JUnit.

Introducere în testarea în Java

Test suplimentar pentru overflow

@Test 

void testAddTwoNumbers() { // Given int num1 = 2147483647; int num2 = 1; // When int actual = addTwoNumbers(num1, num2); // Then assertEquals(-2147483648, actual); }
Introducere în testarea în Java

Note despre JUnit și testare

  • Un test poate conține mai multe afirmații
  • Toate trebuie să reușească pentru ca testul să treacă
  • Putem importa toate afirmațiile astfel:
import org.junit.jupiter.api.Assertions.*;
Introducere în testarea în Java

Note suplimentare

  • Următorul este un instrument personalizat Datacamp, nefiind necesar în IDE:
import static com.datacamp.util.testing.CustomJUnitTestLauncher.launchTestsAndPrint;
  • import static package.Class.method permite utilizarea method direct, fără a scrie package.Class.method
import static java.lang.Math.max;

...

max(3,5); // În loc de Math.max(3, 5)
Introducere în testarea în Java

Să exersăm!

Introducere în testarea în Java

Preparing Video For Download...