Junit Assert и AssertEquals с примером
⚡ Умное резюме
JUnit Методы Assert и AssertEquals определяют статус прохождения или непрохождения теста путем сравнения ожидаемых и фактических значений. В этом ресурсе объясняются методы assert, предоставляемые org.junit.Assert, включая утверждения типа boolean, null, identity, equality и array, с полным рабочим примером.

Что такое Junit Assert?
Метод `assert` полезен для определения статуса "пройдено" или "не пройдено" теста. Методы `assert` предоставляются классом `org.junit.Assert`, который наследует класс `java.lang.Object`.
Существуют различные типы утверждений, такие как логические, нулевые, идентичные и т. д.
JUnit Предоставляет класс с именем Assert, который содержит набор методов проверки утверждений, полезных при написании тестовых случаев и обнаружении ошибок в тестах.
Методы утверждения предоставляются классом org.junit.Утверждать, который расширяет java.lang.Объект класса.
JUnit Утверждать методы
Логический
Для проверки логических условий (истина или ложь) можно использовать следующие методы проверки:
- assertTrue (условие)
- assertFalse (условие)
Здесь условие представляет собой логическое значение.
Нулевой объект
Если вы хотите проверить начальное значение объекта/переменной, у вас есть следующие методы:
- AssertNull (объект)
- AssertNotNull (объект)
Здесь объектом является Java объект, или AssertNull (фактический);
Идентичный
Если вы хотите проверить, идентичны ли объекты (т.е. сравнить две ссылки на один и тот же объект), то это необходимо для того, чтобы убедиться в их идентичности. Java объект) или другой:
- assertSame(expected, actual) — Оно вернет true, если ожидаемый == фактический.
- AssertNotSame(ожидаемое, фактическое)
Утверждать равенство
Для проверки равенства двух объектов можно использовать следующий метод:
- AssertEquals (ожидаемое, фактическое)
Он вернет истину, если expected.equals(actual) возвращает истину.
Утверждение массива равно
Для проверки равенства массивов можно использовать следующий метод:
- AssertArrayEquals (ожидаемое, фактическое)
Приведенный выше метод необходимо использовать, если массивы имеют одинаковую длину. Для каждого допустимого значения для i, вы можете проверить это, как показано ниже:
- assertEquals(expected[i], actual[i])
- assertArrayEquals(expected[i], actual[i])
Сообщение об ошибке
Если вы хотите выдать какую-либо ошибку утверждения, у вас есть неудача()что всегда приводит к провалу.
- fail(message);
Вы можете использовать метод утверждения с дополнительным параметром. строка Параметр в качестве первого параметра. Эта строка будет добавлена к сообщению об ошибке, если проверка не пройдена. Например, fail(message) можно записать как:
- assertEquals(message, expected, actual)
JUnit Утвердитьравно
У тебя есть assertEquals(a, b), который опирается на равно () метод класса Object.
- Здесь оно будет оцениваться как а. равно(б).
- Здесь тестируемый класс используется для определения подходящего отношения равенства.
- Если класс не переопределяет равно () метод объект класс получит поведение по умолчанию равно () метод, т.е. идентичность объекта.
If a и b являются примитивами, такими как байт, Int, логическийи т. д., тогда для assertEquals(a, b) будет выполнено следующее:
a и b будут преобразованы в эквивалентный тип объекта-оболочки (Байт, целое число, логическое значениеи т. д.), а затем а. равно(б) будут оценены.
Например, рассмотрим приведенные ниже строки с одинаковыми значениями; давайте проверим это с помощью assertEquals:
String obj1 = "Junit"; String obj2 = "Junit"; assertEquals(obj1, obj2);
Приведенное выше утверждение вернет true, поскольку obj1.equals(obj2) возвращает true.
Утверждения с плавающей запятой
Когда вам нужно сравнить типы данных с плавающей запятой (например, двойной or плавать), вам потребуется дополнительный обязательный параметр, дельтачтобы избежать проблем, связанных с ошибками округления при сравнении чисел с плавающей запятой.
Утверждение оценивается следующим образом:
- Math.abs(expected – actual) <= delta
Например:
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) Давайте проанализируем ожидаемый результат шаг за шагом. Рассмотрим все утверждения по отдельности:
- assertEquals(string1, string2);
Теперь сравним string1=”Junit” со string2=”Junit” с помощью метода equals класса Object. Заменив метод assertEquals на метод java.lang.Object.equals():
string1.equals(string2) => возвращает true
Таким образом, assertEquals(string1, string2) вернет правда.
- AssertSame (строка3, строка4);
Функция `assertSame()` проверяет, ссылаются ли два объекта на один и тот же объект. Поскольку `string3=”test”` и `string4=”test”`, то `string3` и `string4` имеют один и тот же тип, поэтому `assertSame(string3, string4)` вернет результат. правда.
- AssertNotSame (строка1, строка3);
Функция “assertNotSame()” проверяет, не ссылаются ли два объекта на один и тот же объект. Поскольку string1=”Junit” и string3=”test”, string1 и string3 имеют разные типы, функция assertNotSame(string1, string3) вернет значение true. правда.
- AssertNotNull (строка1);
Функция “assertNotNull()” проверяет, не является ли объект нулевым. Поскольку string1=”Junit”, что является ненулевым значением, assertNotNull(string1) вернет правда.
- AssertNull (строка5);
Функция `assertNull()` предназначена для проверки того, что объект равен null. Поскольку `string5=null`, что является нулевым значением, `assertNull(string5)` вернет результат. правда.
- assertTrue(variable1 < variable2);
Функция `assertTrue()` предназначена для проверки истинности условия. Поскольку `variable1=1` и `variable2=2`, что показывает истинность условия `variable1 < variable2`, функция `assertTrue(variable1 < variable2)` вернет значение. правда.
- 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 Если класс возвращает true, то при выполнении теста assert он вернет успешный результат (см. вывод ниже).
Шаг 4) Щелкните правой кнопкой мыши на файле Junit4AssertionTest.java и выберите Run As -> JUnit. Вы увидите результат, как показано ниже:
Приведенный выше результат демонстрирует успешное прохождение теста, как и ожидалось.

