Вступ до JUnit

Вступ до тестування в Java

Maria Milusheva

Senior Software Engineer

Короткі факти

  • JUnit — найпопулярніша бібліотека тестування Java
  • Вона добре підтримується й постійно оновлюється

Зображення логотипа JUnit 5.

Вступ до тестування в Java

Написання тесту JUnit

Напишімо тест для методу addTwoNumbers():

public int addTwoNumbers(int a, int b) {
    return a + b;
}
Вступ до тестування в Java

Анотація JUnit @Test

  • Встановіть JUnit через IDE або інструменти збірки (приклад у джерелі)

  • Кожен тест має мати анотацію @Test:

import org.junit.jupiter.api.Test;

@Test 
// Test method will be here

Анотація — це спеціальні метадані, що вказують, як компіляторам і фреймворкам обробляти метод. Анотації починаються з @

1 https://www.jetbrains.com/help/idea/junit.html
Вступ до тестування в Java

Структура тесту 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); }
Вступ до тестування в Java

Оператори assert

  • Швидкий спосіб порівняти фактичні результати з очікуваними
  • Якщо очікуваний і фактичний не збігаються, тест падає
  • Допомагає швидко знаходити баги й помилки

Графіка, що ілюструє оператор assert

Вступ до тестування в Java

Результати тестів

Розгляньмо твердження:

assertEquals(4, actual); // Успіх, якщо actual == 4

У разі успіху з'явиться повідомлення Test passed

Якщо значення не рівні, напр. actual = 5:

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

Пам'ятайте про порядок аргументів! У JUnit першим іде очікуване значення.

Вступ до тестування в Java

Додатковий тест на переповнення

@Test 

void testAddTwoNumbers() { // Given int num1 = 2147483647; int num2 = 1; // When int actual = addTwoNumbers(num1, num2); // Then assertEquals(-2147483648, actual); }
Вступ до тестування в Java

Нотатки про JUnit і тестування

  • У тесті може бути кілька assert'ів
  • Усі assert-и мають пройти, щоб тест зарахували
  • Можна імпортувати всі assert-и так:
import org.junit.jupiter.api.Assertions.*;
Вступ до тестування в Java

Ще нотатки

  • Нижче — власний інструмент Datacamp, у IDE не потрібен:
import static com.datacamp.util.testing.CustomJUnitTestLauncher.launchTestsAndPrint;
  • import static package.Class.method дозволяє викликати method просто як method, без package.Class.method
import static java.lang.Math.max;

...

max(3,5); // Замість Math.max(3, 5)
Вступ до тестування в Java

Давайте потренуємось!

Вступ до тестування в Java

Preparing Video For Download...