JUnit Тестовые случаи @Before @BeforeClass Аннотация
JUnit это самая популярная единица Тестирование рамки в Java. Это явно рекомендуется для Модульное тестирование. JUnit не требуется сервер для тестирования веб-приложения, что делает процесс тестирования быстрым.
JUnit Framework также позволяет быстро и легко создавать тестовые примеры и тестовые данные. орг.Юнит пакет состоит из множества интерфейсов и классов для JUnit Тестирование, такое как «Тест», «Утверждение», «После», «До» и т. д.
Что такое испытательное приспособление
Прежде чем мы поймем, что такое тестовое приспособление, давайте изучим приведенный ниже код.
Этот код предназначен для выполнения двух тестовых случаев в простом файле.
public class OutputFileTest { private File output; output = new File(...); output.delete(); public void testFile1(){ //Code to verify Test Case 1 } output.delete(); output = new File(...); public void testFile2(){ //Code to verify Test Case 2 } output.delete(); }
Здесь мало вопросов
- Код не читается
- Код непросто поддерживать.
- Если набор тестов сложен, код может содержать логические проблемы.
Сравните тот же код, используя JUnit
public class OutputFileTest { private File output; @Before public void createOutputFile() { output = new File(...); } @After public void deleteOutputFile() { output.delete(); } @Test public void testFile1() { // code for test case objective } @Test public void testFile2() { // code for test case objective } }
Код гораздо более читабелен и удобен в обслуживании. Приведенная выше структура кода представляет собой Тестовое приспособление.
Тестовое приспособление — это контекст, в котором JUnit Тестовый кейс бежит. Обычно испытательные приспособления включают в себя:
- Объекты или ресурсы, доступные для любого тестового примера.
- Необходимые действия, которые делают эти объекты/ресурсы доступными.
- Эти мероприятия
- распределение (установка)
- дераспределение (демонтаж).
Настройка и разборка
- Обычно перед каждым тестовым примером необходимо выполнить несколько повторяющихся задач. Пример: создать соединение с базой данных.
- Аналогично, в конце каждого тестового примера могут быть повторяющиеся задачи. Пример: для очистки после завершения выполнения теста.
- JUnit предоставляет аннотации, которые помогают при настройке и демонтаже. Это гарантирует, что ресурсы высвобождаются, и тестовая система находится в состоянии готовности к следующему тестовому примеру.
Эти JUnit аннотации обсуждаются ниже-
Установка
@Перед аннотация в JUnit используется в методе, содержащем Java код для запуска перед каждым тестовым примером. т.е. он запускается перед каждым выполнением теста.
Снос (независимо от приговора)
@После аннотация используется в методе, содержащем код Java, который запускается после каждого тестового примера. Эти методы будут выполняться, даже если в тестовом примере или в случае сбоя утверждения возникают какие-либо исключения.
Примечание:
- Допускается иметь любое количество аннотаций, перечисленных выше.
- Все методы, аннотированные @Перед in JUnit будут выполняться перед каждым тестовым примером, но они могут выполняться в любом порядке.
- Вы можете наследовать методы @Before и @After от суперкласса. Выполнение выглядит следующим образом: это стандартный процесс выполнения в JUnit.
- Выполнить JUnit @Before методы в суперклассе
- Выполните методы @Before в этом классе.
- Выполните метод @Test в этом классе
- Выполните методы @After в этом классе.
- Выполните методы @After в суперклассе
Пример: создание класса с файлом в качестве тестового приспособления
public class OutputFileTest { private File output; @Before public void createOutputFile() { output = new File(...); } @After public void deleteOutputFile() { output.delete(); } @Test public void testFile1() { // code for test case objective } @Test public void testFile2() { // code for test case objective } }
В приведенном выше примере цепочка выполнения будет следующей:
- создатьВыходнойФайл()
- тестФайл1()
- удалитьВыходнойФайл()
- создатьВыходнойФайл()
- тестФайл2()
- удалитьВыходнойФайл()
Предположение:
testFile1() выполняется раньше testFile2(), что не гарантируется.
Однократная установка
- Можно запустить метод только один раз для всего тестового класса перед выполнением любого из тестов и перед любым @Перед метод (ы).
- «Однократная настройка» полезна для запуска серверов, открытия связи и т. д. Закрытие и повторное открытие ресурсов для каждого теста занимает много времени.
- Это можно сделать с помощью аннотации @BeforeClass in JUnit.
@BeforeClass public static void Method_Name() { // class setup code here }
Снести только один раз
- Подобно однократной настройке, также доступен метод однократной очистки. Он запускается после всех методов тестового примера и @После аннотации выполнены.
- Это полезно для остановки серверов, закрытия каналов связи и т. д.
- Это можно сделать с помощью @После занятий аннотирование
@AfterClass public static void Method_Name() { // class cleanup code here }
JUnit Наборы тестов
Если мы хотим выполнить несколько тестов в указанном порядке, это можно сделать, объединив все тесты в одном месте. Это место называется наборами тестов. Подробнее о том, как выполнять наборы тестов и как это используется в JUnit будет рассмотрено в этом учебник.
Юнит-тестировщик
JUnit предоставляет инструмент для выполнения ваших тестовых случаев.
- JUnitОсновные class используется для выполнения этих тестов.
- Метод под названием runClasses предоставляемые org.junit.runner.JUnitОсновной, используется для запуска одного или нескольких тестовых классов.
- Тип возвращаемого значения этого метода — Результат объект (org.junit.runner.Результат), который используется для доступа к информации о тестах. Для большей ясности см. следующий пример кода.
public class Test { public static void main(String[] args) { Result result = JUnitCore.runClasses(CreateAndSetName.class); for (Failure failure : result.getFailures()) { System.out.println(failure.toString()); } System.out.println(result.wasSuccessful()); } }
В приведенном выше коде объект «результат» обрабатывается для получения ошибок и успешных результатов тестовых случаев, которые мы выполняем.
Имя JUnit программа
Хорошее знание SDLC, Java-программирования и основ тестирование программного обеспечения процесс помогает понять JUnit программу.
Давайте разберемся в модульном тестировании на живом примере. Нам нужно создать тестовый класс с тестовым методом, аннотированным @Контрольная работа как указано ниже:
MyFirstClassTest.java
package guru99.JUnit; import static org.JUnit.Assert.*; import org.JUnit.Test; public class MyFirstClassTest { @Test public void myFirstMethod(){ String str= "JUnit is working fine"; assertEquals("JUnit is working fine",str); } }
TestRunner.java
Чтобы выполнить наш тестовый метод (выше), нам нужно создать средство запуска тестов. В программе запуска тестов нам нужно добавить тестовый класс в качестве параметра в JUnitМетод runclasses() ядра. Он вернет результат теста в зависимости от того, пройден тест или нет.
Более подробную информацию об этом смотрите в коде ниже:
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(MyFirstClassTest.class); for (Failure failure : result.getFailures()) { System.out.println(failure.toString()); } System.out.println("Result=="+result.wasSuccessful()); } }
Результат
Как только TestRunner.java выполняет наши тестовые методы, мы получаем результат как неудачный или пройденный. Ниже приведено объяснение вывода:
- В этом примере после выполнения MyFirstClassTest.java , тест пройден, и результат отображается зеленым цветом.
- Если бы произошел сбой, результат должен был бы отображаться красным цветом, и сбой можно было бы наблюдать в трассировке сбоя. См. ниже JUnit графический интерфейс:
Резюме
- JUnit — это платформа, которая поддерживает несколько аннотаций для идентификации метода, содержащего тест.
- JUnit предоставляет аннотацию под названием @Тест, что говорит JUnit что общедоступный метод void, в котором он используется, может работать как тестовый пример.
- Тестовое приспособление — это контекст, в котором выполняется тестовый пример.
- Чтобы выполнить несколько тестов в указанном порядке, это можно сделать, объединив все тесты в одном месте. Это место называется тестовыми наборами.
- JUnit предоставляет инструмент для выполнения тестов, с помощью которого мы можем запускать тестовые примеры, называемый Test Runner.