Junit Assert & AssertEquals із прикладом
⚡ Розумний підсумок
JUnit Assert та AssertEquals визначають статус проходження або непроходження тестового випадку шляхом порівняння очікуваних та фактичних значень. Цей ресурс пояснює методи assert, що надаються org.junit.Assert, включаючи логічні, null, identity, equality та твердження масивів, з повним робочим прикладом.

Що таке Junit Assert?
Assert – це метод, корисний для визначення статусу «Пройдено» або «Не пройдено» тестового випадку. Методи assert надаються класом org.junit.Assert, який розширює клас java.lang.Object.
Існують різні типи тверджень, такі як булеві, нульові, ідентичні тощо.
JUnit надає клас під назвою Assert, який пропонує низку методів тверджень, корисних для написання тестових випадків та виявлення невдач тестування.
Методи assert надаються класом org.junit.Assert, що розширює java.lang.Object клас.
JUnit Методи ствердження
Boolean
Якщо ви хочете перевірити логічні умови (true чи false), ви можете використовувати такі методи assert:
- assertTrue(умова)
- assertFalse(умова)
Тут умова є логічним значенням.
Нульовий об'єкт
Якщо ви хочете перевірити початкове значення об’єкта/змінної, у вас є такі методи:
- assertNull(об'єкт)
- assertNotNull(об'єкт)
Тут об'єкт є Java об'єкт, наприклад assertNull(фактично);
Ідентичний
Якщо ви хочете перевірити, чи є об'єкти ідентичними (тобто порівняти два посилання на один і той самий Java об'єкт) або інший:
- assertSame(очікуване, фактичне) — Поверне значення true, якщо очікуваний == фактичний.
- assertNotSame(очікуваний, фактичний)
Стверджувати дорівнює
Якщо ви хочете перевірити рівність двох об'єктів, у вас є такий метод:
- assertEquals(очікуваний, фактичний)
Він поверне true if очікуване.дорівнює(фактичне) повертає правду.
Стверджувати, що масив дорівнює
Якщо ви хочете перевірити рівність масивів, у вас є наступний метод:
- assertArrayEquals(очікуваний, фактичний)
Вищезазначений метод необхідно використовувати, якщо масиви мають однакову довжину. Для кожного допустимого значення for i, ви можете перевірити це, як зазначено нижче:
- assertEquals(очікуваний[i], фактичний[i])
- assertArrayEquals(очікуваний[i], фактичний[i])
Повідомлення про помилку
Якщо ви хочете викинути будь-яку помилку твердження, ви це зробили помилка(), що завжди призводить до вердикту «невдача».
- невдача(повідомлення);
Ви можете мати метод твердження з додатковим рядок параметр як перший параметр. Цей рядок буде додано до повідомлення про помилку, якщо твердження не вдасться. Наприклад невдача (повідомлення) можна записати так:
- assertEquals(повідомлення, очікуване, фактичне)
JUnit assertEquals
У вас є assertEquals(a, b), яка спирається на дорівнює () метод класу Object.
- Тут це буде оцінено як a.дорівнює(b).
- Тут тестований клас використовується для визначення відповідного відношення рівності.
- Якщо клас не перевизначає дорівнює () метод Об'єкт клас, він отримає поведінку за замовчуванням дорівнює () метод, тобто ідентичність об'єкта.
If a та b є примітивами, такими як байт, Int, booleanтощо, тоді для assertEquals(a, b) буде виконано наступне:
a та b буде перетворено на еквівалентний тип обгортки (Байт, ціле число, логічне числоі т. д.), а потім a.дорівнює(b) буде оцінюватися.
Наприклад, розглянемо наведені нижче рядки з однаковими значеннями; перевіримо це за допомогою assertEquals:
String obj1 = "Junit"; String obj2 = "Junit"; assertEquals(obj1, obj2);
Вищезазначений оператор assert поверне значення true, оскільки obj1.equals(obj2) поверне значення true.
Твердження з плаваючою комою
Коли ви хочете порівняти типи з плаваючою комою (наприклад, подвійний or плавати), вам потрібен додатковий обов'язковий параметр, дельта, щоб уникнути проблем з помилками округлення під час порівняння чисел з плаваючою комою.
Твердження оцінюється, як наведено нижче:
- Math.abs(очікуване – фактичне) <= дельта
Наприклад:
assertEquals(aDoubleЦінність, іншеDoubleЗначення, 0.001)
JUnit Приклад ствердження
У наведеному нижче прикладі показано, як стверджувати умову за допомогою JUnit стверджувати методи.
Давайте створимо простий тестовий клас з назвою Junit4AssertionTest.java і тестовий клас TestRunner.java.
Ви створите кілька змінних та важливих операторів sssert у JUnit.
У цьому прикладі ви виконаєтесь з нашим тестовим класом за допомогою TestRunner.java.
Крок 1) Давайте створимо клас, що охоплює всі важливі методи оператора assert у JUnit:
Junit4AssertionTest.java
package guru99.junit; import static org.junit.Assert.*; import org.junit.Test; public class Junit4AssertionTest { @Test public void testAssert() { // Variable declaration String string1 = "Junit"; String string2 = "Junit"; String string3 = "test"; String string4 = "test"; String string5 = null; int variable1 = 1; int variable2 = 2; int[] airethematicArrary1 = { 1, 2, 3 }; int[] airethematicArrary2 = { 1, 2, 3 }; // Assert statements assertEquals(string1, string2); assertSame(string3, string4); assertNotSame(string1, string3); assertNotNull(string1); assertNull(string5); assertTrue(variable1 < variable2); assertArrayEquals(airethematicArrary1, airethematicArrary2); } }
Крок 2) Вам потрібно створити клас запуску тестів для виконання вищезазначеного класу:
TestRunner.java
package guru99.junit; import org.junit.runner.JUnitCore; import org.junit.runner.Result; import org.junit.runner.notification.Failure; public class TestRunner { public static void main(String[] args) { Result result = JUnitCore.runClasses(Junit4AssertionTest.class); for (Failure failure : result.getFailures()) { System.out.println(failure.toString()); } System.out.println("Result==" + result.wasSuccessful()); } }
Крок 3) Давайте проаналізуємо очікуваний результат крок за кроком. Розглянемо всі оператори sssert по черзі:
- assertEquals(рядок1, рядок2);
Тепер порівняйте string1=”Junit” зі string2=”Junit” за допомогою методу equals класу Object. Замініть метод assertEquals на метод java.lang.Object.equals():
string1.equals(string2) => повертає true
Отже, assertEquals(string1, string2) поверне правда.
- assertSame(рядок3, рядок4);
Функціональність “assertSame()” перевіряє, чи два об’єкти посилаються на один і той самий об’єкт. Оскільки string3=”test” та string4=”test”, string3 та string4 мають один і той самий тип, тому assertSame(string3, string4) поверне правда.
- assertNotSame(рядок1, рядок3);
Функціональність “assertNotSame()” перевіряє, чи два об’єкти не посилаються на один і той самий об’єкт. Оскільки string1=”Junit” та string3=”test”, string1 та string3 мають різні типи, тому assertNotSame(string1, string3) поверне значення правда.
- assertNotNull(рядок1);
Функціональність “assertNotNull()” перевіряє, чи об’єкт не є null. Оскільки string1=”Junit”, що є не null-значенням, assertNotNull(string1) поверне правда.
- assertNull(рядок5);
Функціональність «assertNull()» перевіряє, чи є об'єкт null. Оскільки string5=null, що є значенням null, assertNull(string5) поверне правда.
- assertTrue(змінна1 < змінна2);
Функціональність «assertTrue()» перевіряє, чи умова істинна. Оскільки variable1=1 та variable2=2, що показує, що умова variable1 < variable2 істинна, assertTrue(variable1 < variable2) поверне правда.
- assertArrayEquals(airethematicArrary1, airethematicArrary2);
Функціональність «assertArrayEquals()» перевіряє, чи очікуваний масив та результуючий масив однакові. Тип масиву може бути int, long, short, char, byte або java.lang.Object. Оскільки airethematicArrary1 = { 1, 2, 3 } та airethematicArrary2 = { 1, 2, 3 }, що показує, що обидва масиви рівні, assertArrayEquals(airethematicArrary1, airethematicArrary2) поверне значення правда.
Оскільки всі сім стверджують твердження про Junit4AssertionTest.java клас повертає true, коли ви виконуєте клас test assert, він поверне успішне тестування (див. вивід нижче).
Крок 4) Клацніть правою кнопкою миші на Junit4AssertionTest.java та виберіть «Запустити від імені» -> JUnit. Ви побачите результат, наведений нижче:
Наведений вище результат показує успішний результат тестування, як і очікувалося.

