Введение в JUnit

Введение в тестирование на Java

Maria Milusheva

Senior Software Engineer

Коротко о JUnit

  • JUnit — самая популярная библиотека тестирования для Java
  • Проект активно поддерживается и регулярно обновляется

Логотип JUnit 5.

Введение в тестирование на Java

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

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

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

Аннотация @Test в JUnit

  • Установите 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); // Will succeed if 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 и тестировании

  • В одном тесте может быть несколько утверждений
  • Тест проходит только при успешном выполнении всех утверждений
  • Импортировать все утверждения можно так:
import org.junit.jupiter.api.Assertions.*;
Введение в тестирование на Java

Дополнительные заметки

  • Следующий инструмент создан специально для DataCamp и не нужен в IDE:
import static com.datacamp.util.testing.CustomJUnitTestLauncher.launchTestsAndPrint;
  • import static package.Class.method позволяет использовать method напрямую, без указания package.Class.method
import static java.lang.Math.max;

...

max(3,5); // Instead of Math.max(3, 5)
Введение в тестирование на Java

Давайте потренируемся!

Введение в тестирование на Java

Preparing Video For Download...