Что такое 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 Assert
- Логический
- Нулевой объект
- Идентичный
- Утверждать равные
- Утвердить массив равным
- Сообщение об ошибке
- JUnit assertEquals
- Утверждения с плавающей запятой
- Пример JUnit Assert
Методы JUnit Assert
Логический
Если вы хотите проверить логические условия (истина или ложь), вы можете использовать следующие методы assert
- assertTrue (условие)
- assertFalse (условие)
Здесь условие - это логическое значение.
Нулевой объект
Если вы хотите проверить начальное значение объекта / переменной, у вас есть следующие методы:
- assertNull (объект)
- assertNotNull (объект)
Здесь объект - объект Java, например assertNull (фактический);
Идентичный
Если вы хотите проверить, идентичны ли объекты (т. Е. Сравнивая две ссылки на один и тот же объект java) или разные.
- assertSame (ожидаемый, фактический), он вернет истину, если ожидалось == фактическое
- assertNotSame (ожидаемый, фактический)
Утверждать равные
Если вы хотите проверить равенство двух объектов, у вас есть следующие методы
- assertEquals (ожидаемый, фактический)
Он вернет истину, если: expected.equals (actual) вернет истину.
Утвердить массив равным
Если вы хотите проверить равенство массивов, у вас есть следующие методы, указанные ниже:
- assertArrayEquals (ожидаемый, фактический)
Вышеуказанный метод должен использоваться, если массивы имеют одинаковую длину, для каждого допустимого значения для i вы можете проверить его, как указано ниже:
- assertEquals (ожидаемый [i], фактический [i])
- assertArrayEquals (ожидаемый [i], фактический [i])
Сообщение об ошибке
Если вы хотите выдать какую-либо ошибку утверждения, у вас есть fail (), который всегда приводит к неудачному вердикту.
- Ошибка (сообщение);
У вас может быть метод утверждения с дополнительным параметром String в качестве первого параметра. Эта строка будет добавлена в сообщение об ошибке, если утверждение не выполняется. Например, сбой (сообщение) можно записать как
- assertEquals (сообщение, ожидаемое, фактическое)
JUnit assertEquals
У вас есть assertEquals (a, b), который использует метод equals () класса Object.
- Здесь он будет оцениваться как a.equals (b).
- Здесь тестируемый класс используется для определения подходящего отношения равенства.
- Если класс не отменяет Equals () метод объект класса, то получите поведение по умолчанию равно () метод, т.е. идентичность объекта.
Если a и b являются примитивами, такими как byte , int , boolean и т. Д., То для assertEquals (a, b) будет выполнено следующее:
a и b будут преобразованы в их эквивалентный тип объекта-оболочки ( байтовый, целочисленный , логический и т. д.), а затем будет оцениваться a.equals (b) .
Например: рассмотрим нижеупомянутые строки с одинаковыми значениями, давайте протестируем это с помощью assertTrue.
Строка obj1 = "Юнит";Строка obj2 = "Юнит";assertEquals (obj1, obj2);
Вышеупомянутый оператор assert вернет истину, поскольку obj1.equals (obj2) вернет истину.
Утверждения с плавающей запятой
Если вы хотите сравнить типы с плавающей запятой (например, double или float ), вам понадобится дополнительный обязательный параметр delta, чтобы избежать проблем с ошибками округления при сравнении с плавающей запятой.
Утверждение оценивается следующим образом:
- Math.abs (ожидаемый - фактический) <= дельта
Например:
assertEquals (aDoubleValue, anotherDoubleValue, 0,001)
Пример JUnit Assert
Пример ниже демонстрирует, как утверждать условие с помощью методов утверждения JUnit.
Давайте создадим простой тестовый класс с именем Junit4AssertionTest.java и класс средства запуска тестов TestRunner.java .
Вы создадите несколько переменных и важных утверждений в JUnit.
В этом примере вы выполните наш тестовый класс, используя TestRunner.java.
Шаг 1) Давайте создадим класс, охватывающий все важные методы утверждения утверждения в junit:
Junit4AssertionTest.java
пакет guru99.junit;import static org.junit.Assert. *;import org.junit.Test;public class Junit4AssertionTest {@Тестpublic void testAssert () {// Объявление переменнойСтрока string1 = «Юнит»;Строка string2 = "Юнит";Строка string3 = "тест";Строка string4 = "тест";Строка string5 = null;int variable1 = 1;int variable2 = 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;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 = JUnitCore.runClasses (Junit4AssertionTest.class);for (Failure failure: result.getFailures ()) {System.out.println (отказ.toString ());}System.out.println ("Результат ==" + result.wasSuccessful ());}}
Шаг 3) Давайте шаг за шагом проанализируем ожидаемый результат:
Рассмотрим все утверждения assert по очереди:
- assertEquals (строка1, строка2);
Теперь сравните string1 = "Junit" с string2 = "Junit" с методом equals класса объекта. Замена метода assertEquals методом java.lang.Object.equals ():
string1.equals (string2) => возвращает истину
Таким образом, assertEquals (string1, string2) вернет true .
- assertSame (строка3, строка4);
Функциональность «assertSame ()» заключается в проверке того, что два объекта относятся к одному и тому же объекту.
Поскольку string3 = "test" и string4 = "test" означает, что и строка3, и строка4 имеют один и тот же тип, поэтому assertSame (строка3, строка4) вернет истину .
- assertNotSame (строка1, строка3);
Функциональность assertNotSame () заключается в проверке того, что два объекта не относятся к одному и тому же объекту.
Поскольку строка1 = "Junit" и строка3 = "тест" означает, что и строка1, и строка3 имеют разные типы, поэтому assertNotSame (строка1, строка3) вернет истину .
- assertNotNull (строка1);
Функциональность «assertNotNull ()» - проверить, не является ли объект нулевым.
Поскольку string1 = "Junit", который не является нулевым значением, assertNotNull (string1) вернет true .
- assertNull (строка5);
Функциональность «assertNull ()» - проверить, является ли объект нулевым.
Поскольку string5 = null, который является нулевым значением, assertNull (string5) вернет true .
- assertTrue (переменная1 <переменная2);
Функциональность «assertTrue ()» заключается в проверке выполнения условия.
Поскольку переменная1 = 1 и переменная2 = 2, это показывает, что условие переменной1 <переменная2 истинно, поэтому assertTrue (переменная1 <переменная2) вернет истину .
- assertArrayEquals (airethematicArrary1, airethematicArrary2);
Функциональность assertArrayEquals () заключается в проверке равенства ожидаемого массива и результирующего массива. Типом массива может быть int, long, short, char, byte или java.lang.Object.
Поскольку airethematicArrary1 = {1, 2, 3} и airethematicArrary2 = {1, 2, 3}, который показывает, что оба массива равны, assertArrayEquals (airethematicArrary1, airethematicArrary2) вернет true
Поскольку все семь операторов assert класса Junit4AssertionTest.java возвращают значение true, поэтому, когда вы выполняете тестовый класс assert, он вернет успешный тест. (см. вывод ниже)
Шаг 4) Щелкните правой кнопкой мыши Junit4AssertionTest.java и выберите runAs-> JUnit. Вы увидите результат, как показано ниже:
Приведенные выше выходные данные показывают успешный результат теста, как и ожидалось.
Резюме:
В этом руководстве вы изучили все важные типы методов утверждения, предоставляемые JUnit. Также вы видели примеры утверждений. Это показывает, что если все утверждения assert возвращают истину, тогда графический интерфейс тестирования вернет истинный результат, а если единственный тест не пройден, он вернет неудачный результат.