Класът JUnit Assertions съдържа колекция от статични методи, които ви позволяват да провеждате единични тестове. Твърденията са една от основните характеристики на JUnit. Този клас има над петдесет различни метода. Някои тестове на клас Assertions ще се провалят, ако дадено условие е вярно, докато други ще се провалят, ако условието е невярно.

Класът Assertions също има много претоварени методи. Всеки метод на твърдение има поне два претоварени метода. Открийте някои от по-популярните методи на клас Assertions и научете как да ги използвате за извършване на модулни тестове.

Методът assertEquals

Методът JUnit 5 assertEquals има над десет варианта. Този метод е един от най-популярните методи на клас Assertions. Един вариант на метода assertEquals приема очаквана стойност и функцията, която искате да оцените (действителна стойност). Вторият основен вариант приема допълнителен трети аргумент. Това е съобщение за грешка, което ще се покаже, ако Единичен тест на JUnit не успява.

Претоварването на метода assertEquals се случва с различни типове данни. Някои методи за претоварване на assertEquals приемат четвърти аргумент, наречен делта. Други версии заменят низа за грешка с функционален интерфейс на доставчика под формата на a

instagram viewer
ламбда израз.

AssertionsMethods Java клас

пакет com.програма;

публиченкласAssertionsMethods{
публиченстатиченвътрквадрат(вътр брой){
връщане брой * брой;
}
}

Java класът AssertionsMethods по-горе има един метод, наречен square. Квадратният метод приема цяло число и връща нейния квадрат. За да тествате квадратния метод и всеки бъдещ метод от класа AssertionsMethods, ще трябва да създадете JUnit тестов случай.

Тестовият случай на JUnit на AssertionsMethodsTest

пакет com.програма;

импортиранестатиченорг.junit.Твърди.assertEquals;
импортиранестатиченорг.junit.юпитер.api.Твърдения.*;

импортиранеорг.junit.юпитер.api.Тест;

класAssertionsMethodsTest{
@Тест
невалиденtestSquare(){
assertEquals(25, AssertionMethods.квадрат(5));
assertEquals (36, AssertionMethods.square (6), "Вашите квадратни стойности не съвпадат.");
assertEquals (49, AssertionMethods.square (7), () ->"Вашите квадратни стойности не съвпадат.");
}
}

Методът testSquare() използва три варианта на assertEquals() за тестване на метода square(). Всеки assertEquals() е успешен, тъй като всички очаквани стойности съвпадат с действителните стойности, върнати от метода square().

Методът assertNull

Класът JUnit Assertions има точно три метода assertNull. Всеки от тези методи приема един или повече аргументи и потвърждава дали дадения обект е нула. Ако даден обект не е нулев, тогава тестът ще бъде неуспешен.

@Тест
публиченневалиденtestStringValue(){
низ stringValue = нула;
assertNull (stringValue);
assertNull (stringValue, "Стойността на вашия низ не е нула");
assertNull (stringValue, () ->"Стойността на вашия низ не е нула");
}

Първият метод assertNull() взема обект от низ и проверява дали е нулев. Вторият метод assertNull() взема обект от низ и съобщение от низ, за ​​да се покаже, ако тестът е неуспешен. Третият и последен метод assertNull() взема обекта, който искате да оцените, и функционален интерфейс на доставчика.

В горния тестов случай интерфейсът на доставчика действа като цел за присвояване на ламбда израз. Ламбда изразът генерира съобщение за грешка, ако тестът е неуспешен.

Методът assertTrue

Методът assertTrue() има шест варианта. Всеки метод потвърждава дали дадено условие е вярно. Ако условие assertTrue() е невярно, тестът ще бъде неуспешен.

@Тест
невалиденtestEvenNumbers(){
вътр num1 = 10;
вътр num2 = 16;
вътр num3 = 26;
assertTrue (num1 < номер2);
assertTrue (num3 > число 2, "Вашето условие не е вярно.");
assertTrue (num1 < num3, () ->" Вашето условие не е вярно.");
assertTrue(() -> num1%2 == 0);
assertTrue(() -> num2%2 == 0, "Вашата стойност не е четно число.");
assertTrue(() -> num3%2 == 0, () ->"Вашата стойност не е четно число.");
}

Методът testEvenNumbers() демонстрира как да използвате всичките шест метода assertTrue(). Всички методи по-горе са верни, следователно този модулен тест се изпълнява без повреда или грешка.

  • assertTrue (булево условие): този метод приема булево условие и потвърждава дали е вярно. Примерът на този метод в кода по-горе потвърждава дали първата цяло число е по-малка от втората.
  • assertTrue (булево условие, съобщение за низ): този метод взема булево условие за тестване и низ за показване, ако е невярно.
  • assertTrue (булево условие, доставчик messageSupplier): този метод приема булев и функционален интерфейс на доставчик като ламбда израз. Доставчикът на съобщение съдържа низ за показване, ако булевото условие е невярно.
  • assertTrue (BooleanSupplier booleanSupplier): този метод приема функционален интерфейс на BooleanSupplier под формата на ламбда израз, който се оценява на true или false. Примерът на този метод в кода използва ламбда израз. Той тества остатъка от първото цяло число, разделено на две, за да определи дали е четно или нечетно.
  • assertTrue (BooleanSupplier booleanSupplier, String message): този метод приема функционален интерфейс на BooleanSupplier под формата на ламбда израз. Също така е необходимо съобщение за низ за отпечатване, ако BooleanSupier не е вярно.
  • assertTrue (BooleanSupplier booleanSupplier, Supplier messageSupplier): този метод използва функционален интерфейс BooleanSupplier, за да потвърди. Той също така изисква функционален интерфейс на доставчика, който е ламбда израз, който ще отпечата стойност на низ, ако тестът е неуспешен.

Методът assertFalse

Методът assertFalse() е противоположен на метода assertTrue(). Този метод оценява дадено условие, за да види дали е невярно. Ако дадено условие е вярно, тогава тестът assertFalse() ще бъде неуспешен. Методът assertFalse() също има шест варианта, които приемат същите аргументи като техните аналогове assertTrue().

@Тест
невалиденtestNotEvenNumbers(){
вътр num1 = 11;
вътр num2 = 17;
вътр num3 = 27;
assertFalse (num2 < номер1);
assertFalse (num2 > бр.3, " Вашето условие не е фалшиво.");
assertFalse (num3 < num1, () ->" Вашето условие не е фалшиво.");
assertFalse(() -> num1%2 == 0);
assertFalse(() -> num2%2 == 0, "Вашата стойност е четно число.");
assertFalse(() -> num3%2 == 0, () ->"Вашата стойност е четно число.");
}

Всички шест метода assertFalse() в метода testNotEvenNumbers() водят до false, което означава, че тестовете assertFalse() са успешни.

Ползите от модулното тестване

Единичното тестване е неразделна част от процеса на разработка на софтуер. Големите софтуерни проекти се провалят по различни причини, вариращи от екипите, които работят върху тях, до подходите за разработка.

Целта на модулното тестване е да се елиминира софтуерната грешка чрез осигуряване на ранно откриване на грешки. Това изисква екипите да разработят ясни спецификации, да подобрят дизайна на софтуера чрез документиране на грешки и да осигурят поддръжка за поддръжка на софтуера.

Единичното тестване не е единственият подход за тестване на софтуер, който трябва да използвате в жизнения цикъл на разработката, то е просто много добро място за начало.