Junit Assert & AssertEquals з прикладом

Зміст:

Anonim

Що таке Junit Assert?

Assert - це метод, корисний для визначення статусу Pass або Fail тестового випадку. Методи затвердження надаються класом org.junit.Assert, який розширює клас java.lang.Object.

Існують різні типи тверджень, такі як логічне, нульове, ідентичне тощо.

Junit надає клас на ім'я Assert, який надає купу методів твердження, корисних для написання тестових кейсів та виявлення невдалих тестів

Методи затвердження надаються класом org.junit.Assert, який розширює клас java.lang.Object .

У цьому підручнику ви дізнаєтесь-

  • Методи JUnit Assert
  • Логічна
  • Нульовий об'єкт
  • Ідентичні
  • Стверджувати рівне
  • Затвердити масив дорівнює
  • Повідомлення про помилку
  • JUnit assertEquals
  • Твердження з плаваючою точкою
  • Приклад JUnit Assert

Методи JUnit Assert

Логічна

Якщо ви хочете перевірити логічні умови (істинні чи хибні), ви можете використовувати наступні методи затвердження

  1. assertTrue (умова)
  2. assertFalse (умова)

Тут умовою є логічне значення.

Нульовий об'єкт

Якщо ви хочете перевірити початкове значення об’єкта / змінної, у вас є такі методи:

  1. assertNull (об'єкт)
  2. assertNotNull (об'єкт)

Тут об'єктом є об'єкт Java, наприклад assertNull (фактичний);

Ідентичні

Якщо ви хочете перевірити, чи є об'єкти ідентичними (тобто порівнянням двох посилань на один і той же об'єкт Java), чи різні.

  1. assertSame (очікуваний, фактичний), він поверне true, якщо очікується == фактичний
  2. assertNotSame (очікуваний, фактичний)

Стверджувати рівне

Якщо ви хочете перевірити рівність двох об’єктів, у вас є такі методи

  • assertEquals (очікуваний, фактичний)

Поверне true, якщо: ожидаемо.equals (фактичне) повертає true.

Затвердити масив дорівнює

Якщо ви хочете перевірити рівність масивів, у вас є такі методи, як зазначено нижче:

  • assertArrayEquals (очікуваний, фактичний)

Вищезазначений метод потрібно використовувати, якщо масиви мають однакову довжину, для кожного допустимого значення для i ви можете перевірити його, як зазначено нижче:

  • assertEquals (очікуваний [i], фактичний [i])
  • assertArrayEquals (очікуваний [i], фактичний [i])

Повідомлення про помилку

Якщо ви хочете викинути будь-яку помилку твердження, у вас є fail (), що завжди призводить до вироку про помилку .

  • Помилка (повідомлення);

Ви можете мати метод твердження з додатковим параметром String як першим параметром. Цей рядок буде додано до повідомлення про помилку, якщо твердження не вдасться. Наприклад, помилка (повідомлення) може бути записана як

  • assertEquals (повідомлення, очікуване, фактичне)

JUnit assertEquals

У вас є assertEquals (a, b), який покладається на метод equals () класу Object.

  • Тут це буде оцінено як a.equals (b).
  • Тут тестований клас використовується для визначення відповідного співвідношення рівності.
  • Якщо клас не перевизначає метод equals () класу Object , він отримає поведінку методу equals () за замовчуванням , тобто ідентичність об'єкта.

Якщо a та b є примітивами, такими як byte , int , boolean тощо, то для assertEquals (a, b) буде виконано наступне:

a та b буде перетворено на еквівалентний тип об'єкта-обгортки ( Byte, Integer , Boolean тощо), а потім буде обчислено a.equals (b) .

Наприклад: Розглянемо згадані нижче рядки з однаковими значеннями, давайте перевіримо їх за допомогою assertTrue

Рядок obj1 = "Junit";Рядок obj2 = "Junit";assertEquals (obj1, obj2);

Вище затвердження твердження поверне true, як obj1.equals (obj2) повертає true.

Твердження з плаваючою точкою

Коли ви хочете порівняти типи з плаваючою комою (наприклад, подвійні чи плаваючі ), вам потрібен додатковий необхідний параметр дельта, щоб уникнути проблем із помилками округлення під час порівняння з плаваючою точкою.

Твердження оцінює, як подано нижче:

  • Math.abs (очікуваний - фактичний) <= дельта

Наприклад:

assertEquals (aDoubleValue, anotherDoubleValue, 0,001)

Приклад JUnit Assert

Нижче приклад демонструє, як стверджувати умову за допомогою методів затвердження JUnit.

Створімо простий тестовий клас з назвою Junit4AssertionTest.java та тест-клас запуску TestRunner.java .

Ви створите кілька змінних та важливі твердження в JUnit.

У цьому прикладі ви виконаєте наш тестовий клас за допомогою TestRunner.java

Крок 1) Давайте створимо клас, що охоплює всі важливі методи твердження в junit:

Junit4AssertionTest.java

пакет guru99.junit;імпортувати статичний org.junit.Assert. *;імпорт org.junit.Test;публічний клас Junit4AssertionTest {@ Тестpublic void testAssert () {// Декларація змінноїРядок string1 = "Junit";Рядок string2 = "Junit";Рядок string3 = "test";Рядок string4 = "test";Рядок string5 = null;змінна int1 = 1;змінна int2 = 2;int [] airethematicArrary1 = {1, 2, 3};int [] airethematicArrary2 = {1, 2, 3};// Затверджувати твердженняassertEquals (рядок1, рядок2);assertSame (рядок3, рядок4);assertNotSame (рядок1, рядок3);assertNotNull (рядок1);assertNull (рядок5);assertTrue (змінна1 <змінна2);assertArrayEquals (airethematicArrary1, airethematicArrary2);}}

Крок 2) Вам потрібно створити тестовий клас бігуна для виконання вище класу:

TestRunner.java

пакет guru99.junit;імпорт org.junit.runner.JUnitCore;імпорт org.junit.runner.Result;імпорт org.junit.runner.notification.Failure;публічний клас TestRunner {public static void main (String [] args) {Результат результату = JUnitCore.runClasses (Junit4AssertionTest.class);for (Помилка помилки: result.getFailures ()) {System.out.println (failure.toString ());}System.out.println ("Результат ==" + result.wasSuccessful ());}}

Крок 3) Давайте проаналізуємо очікуваний вихід покроково:

Розглянемо всі твердження по одному:

  1. assertEquals (рядок1, рядок2);

Тепер порівняйте string1 = "Junit" з string2 = "Junit" з методом equals класу об'єктів. Заміна методу assertEquals з методу java.lang.Object.equals ():

string1.equals (string2) => повертає true

Тож assertEquals (string1, string2) поверне true .

  1. assertSame (рядок3, рядок4);

Функція "assertSame ()" полягає в тому, щоб перевірити, чи відповідають два об'єкти одному об'єкту.

Оскільки string3 = "test" і string4 = "test" означає, що і string3, і string4 мають один тип, тому assertSame (string3, string4) поверне true .

  1. assertNotSame (рядок1, рядок3);

Функція "assertNotSame ()" полягає в тому, щоб перевірити, що два об'єкти не посилаються на один і той же об'єкт.

Оскільки string1 = "Junit" і string3 = "test" означають, що і string1, і string3 мають різні типи, тому assertNotSame (string1, string3) поверне true .

  1. assertNotNull (рядок1);

Функція "assertNotNull ()" полягає в тому, щоб перевірити, чи не є об'єкт нульовим.

Оскільки string1 = "Junit", яке є ненульовим значенням, тому assertNotNull (string1) поверне true .

  1. assertNull (рядок5);

Функція "assertNull ()" полягає у перевірці нульового об'єкта.

Оскільки string5 = null, що є нульовим значенням, тому assertNull (string5) поверне true .

  1. assertTrue (змінна1 <змінна2);

Функція "assertTrue ()" полягає в тому, щоб перевірити, чи умова є істинною.

Оскільки змінна1 = 1 і змінна2 = 2, що показує, що змінна1 <змінна2 умова є істинною, тому assertTrue (змінна1 <змінна2) поверне істину .

  1. assertArrayEquals (airethematicArrary1, airethematicArrary2);

Функція "assertArrayEquals ()" полягає в тому, щоб перевірити, що очікуваний масив і отриманий масив рівні. Тип масиву може бути int, long, short, char, byte або java.lang.Object.

Оскільки airethematicArrary1 = {1, 2, 3} та airethematicArrary2 = {1, 2, 3}, що показує, що обидва масиви рівні, тому assertArrayEquals (airethematicArrary1, airethematicArrary2) поверне true

Оскільки всі сім тверджень утвердження класу Junit4AssertionTest.java повертають true, тому при виконанні тестового класу assert він поверне успішний тест. (див. вихідні дані нижче)

Крок 4) Клацніть правою кнопкою миші на Junit4AssertionTest.java та натисніть runAs-> JUnit. Ви побачите результат, як показано нижче:

Вгорі результат показує успішний результат тестування, як очікувалося.

Короткий зміст:

У цьому посібнику ви дізналися всі важливі типи методів твердження, надані JUnit. Крім того, ви бачили приклади тверджень твердження. Що показує, що якщо всі твердження твердження повертають істину, тоді тестовий графічний інтерфейс поверне істинний результат, а якщо один тест не вдасться, він поверне невдалий результат.