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

Що таке Junit Assert?

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

Існують різні типи тверджень, наприклад Boolean, Null, Identical тощо.

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

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

JUnit Методи ствердження

Boolean

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

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

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

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

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

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

Ось об'єкт Java об'єкт наприклад assertNull(фактично);

Ідентичний

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

  1. assertSame(очікуваний, фактичний), Він поверне true if очікуваний == фактичний
  2. assertNotSame(очікуваний, фактичний)

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

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

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

Він поверне true, якщо: очікуваний.дорівнює(фактичний) повертає правду.

Стверджувати, що масив дорівнює

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

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

Наведений вище метод необхідно використовувати, якщо масиви мають однакову довжину для кожного дійсного значення для 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 буде перетворено на еквівалентний тип обгортки (Байт, ціле число, Booleanі т. д.), а потім a.equals(b) буде оцінюватися.

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

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.

Ви створите кілька змінних і важливі оператори assert 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) Проаналізуємо очікуваний результат крок за кроком:

Розглянемо всі оператори assert один за іншим:

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

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

string1.equals(string2)=> повертає істину

Отже, assertEquals(string1,string2) повернеться правда.

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

Функція «assertSame()» полягає у перевірці того, що два об’єкти посилаються на один і той же об’єкт.

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

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

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

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

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

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

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

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

Функція «assertNull()» полягає в тому, щоб перевірити, що об’єкт є нульовим.

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

  1. assertTrue(змінна1

Функція «assertTrue()» призначена для перевірки істинності умови.

Оскільки змінна1=1 і змінна2=2, що показує, що змінна1 правда.

  1. 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 class повертає true, отже, коли ви виконуєте тестовий клас assert, він поверне успішний тест. (див. результат нижче)

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

JUnit Приклад ствердження

Наведений вище вихід показує успішний результат тесту, як і очікувалося.

Підсумки

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