Junit Assert & AssertEquals с пример

Съдържание:

Anonim

Какво е Junit Assert?

Утвърждаването е метод, полезен при определяне на състояние на успешно или неуспешно изпитване, Методите на утвърждаване се предоставят от класа org.junit.Assert, който разширява класа java.lang.Object.

Има различни видове твърдения като булево, нулево, идентично и т.н.

Junit предоставя клас на име Assert, който предоставя куп методи за твърдение, полезни при писане на тестови случаи и за откриване на неуспех на теста

Методите за утвърждаване се предоставят от класа org.junit.Assert, който разширява класа java.lang.Object .

В този урок ще научите -

  • Методи за JUnit Assert
  • Булево
  • Нулев обект
  • Идентично
  • Твърди, че е равно
  • Утвърждаване на масив е равно
  • Съобщение за неуспех
  • JUnit assertEquals
  • Твърдения с плаваща запетая
  • Пример за потвърждаване на JUnit

Методи за JUnit Assert

Булево

Ако искате да тествате булевите условия (true или false), можете да използвате следните методи за твърдение

  1. assertTrue (състояние)
  2. assertFalse (условие)

Тук условието е булева стойност.

Нулев обект

Ако искате да проверите първоначалната стойност на обект / променлива, имате следните методи:

  1. assertNull (обект)
  2. assertNotNull (обект)

Тук обектът е обект на Java, напр. AssertNull (действителен);

Идентично

Ако искате да проверите дали обектите са идентични (т.е. сравняване на две препратки към един и същ java обект) или различни.

  1. assertSame (очаквано, действително), Ще се върне true, ако се очаква == действително
  2. assertNotSame (очаквано, действително)

Твърди, че е равно

Ако искате да тествате равенството на два обекта, имате следните методи

  • assertEquals (очаквано, действително)

Ще върне вярно, ако: ожидаемо equals (действително) връща true.

Утвърждаване на масив е равно

Ако искате да тествате равенството на масивите, имате следните методи, както е дадено по-долу:

  • assertArrayEquals (очаквано, действително)

Горният метод трябва да се използва, ако масивите имат еднаква дължина, за всяка валидна стойност за i , можете да го проверите, както е дадено по-долу:

  • assertEquals (очаквано [i], действително [i])
  • assertArrayEquals (очаквано [i], действително [i])

Съобщение за неуспех

Ако искате да хвърлите някаква грешка в твърдението, имате неуспех (), който винаги води до присъда за неуспех.

  • Неуспех (съобщение);

Можете да имате метод за твърдение с допълнителен параметър String като първи параметър. Този низ ще бъде добавен в съобщението за неуспех, ако твърдението не успее. Например неуспех (съобщение) може да се запише като

  • assertEquals (съобщение, очаквано, действително)

JUnit assertEquals

Имате assertEquals (a, b), който разчита на метода equals () от класа Object.

  • Тук тя ще бъде оценена като a.equals (b).
  • Тук тестваният клас се използва за определяне на подходяща връзка на равенството.
  • Ако клас не замени метода equals () на Object class, той ще получи поведението по подразбиране на метода equals () , т.е. идентичност на обекта.

Ако a и b са примитиви като байт , int , boolean и т.н., тогава ще се направи следното за assertEquals (a, b):

a и b ще бъдат преобразувани в еквивалентния им тип обект-обвивка ( Byte, Integer , Boolean и др.) и след това a.equals (b) ще бъдат оценени.

Например: Помислете за споменатите по-долу низове със същите стойности, нека тестваме с помощта на assertTrue

String obj1 = "Junit";String obj2 = "Junit";assertEquals (obj1, obj2);

Горният израз на твърдение ще върне true, тъй като obj1.equals (obj2) връща true.

Твърдения с плаваща запетая

Когато искате да сравните типове с плаваща запетая (напр. Двойна или с плаваща запетая ), имате нужда от допълнителен задължителен параметър делта, за да избегнете проблеми с грешки при закръгляване, докато правите сравнения с плаваща запетая.

Твърдението оценява, както е дадено по-долу:

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

Например:

assertEquals (aDoubleValue, anotherDoubleValue, 0,001)

Пример за потвърждаване на JUnit

По-долу пример демонстрира как да се утвърди условие с помощта на JUnit методи за установяване.

Нека създадем прост тестов клас на име Junit4AssertionTest.java и тестов клас TestRunner.java .

Ще създадете няколко променливи и важни твърдения за твърдение в JUnit.

В този пример ще изпълните нашия тестов клас с TestRunner.java

Стъпка 1) Нека създадем клас, обхващащ всички важни методи за твърдение в junit:

Junit4AssertionTest.java

пакет guru99.junit;импортиране на статичен org.junit.Assert. *;внос org.junit.Test;публичен клас Junit4AssertionTest {@Тестpublic void testAssert () {// Декларация на променливаString string1 = "Junit";String string2 = "Junit";String string3 = "тест";Низ string4 = "тест";Низ низ5 = нула;int променлива1 = 1;int променлива2 = 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 {публична статична void main (String [] args) {Резултат резултат = JUnitCore.runClasses (Junit4AssertionTest.class);за (Неуспех при неуспех: 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, следователно, когато изпълните тестовия клас за утвърждаване, той ще върне успешен тест. (вижте изхода по-долу)

Стъпка 4) Щракнете с десния бутон върху Junit4AssertionTest.java и щракнете върху runAs-> JUnit. Ще видите резултата, както е даден по-долу:

По-горе изходът показва успешен резултат от теста, както се очаква.

Резюме:

В този урок научихте всички важни видове методи за твърдение, предоставени от JUnit. Също така сте видели примерите за твърдения за твърдение. Което показва, че ако всички твърдения за твърдение върнат true, тогава тестовият GUI ще върне истински резултат и ако единичният тест не успее, ще върне неуспешен резултат.