Написание тестов JUnit в IDE NetBeans

Написание тестов JUnit в IDE NetBeans

В этом учебном курсе описываются основы написания и запуска тестов JUnit в IDE NetBeans. Тестирование приложения является неотъемлемой частью цикла разработки, а написание и поддержка модульных тестов могут гарантировать корректную работу отдельных методов исходного кода. Интегрированная поддержка среды IDE для инфраструктуры модульного тестирования JUnit позволяет быстро и просто создавать тесты JUnit и наборы тестов.

В этом руководстве создаются простые модульные тесты JUnit 3 и JUnit 4 и наборы тестов для проекта библиотеки классов Java. Первая часть руководства посвящена созданию тестов в JUnit 3. Во второй части показан способ создания этих тестов в JUnit 4 с помощью аннотаций JUnit. Не обязательно завершать обе части курса, поскольку тесты в них одинаковы, но с помощью сравнения тестов в обеих версиях можно увидеть изменения, представленные в JUnit 4.

Для получения дополнительных сведений относительно JUnit см. www.junit.org.

Для работы с этим учебным курсом требуется следующее программное обеспечение и ресурсы.

Для выполнения действий данной учебной программы необходимо установить подключаемый модуль JUnit, загрузив его из Центра обновлений. Вы можете установить подключаемый модуль JUnit в диспетчере подключаемых модулей, если не сделали это в процессе установки IDE.

Создание проекта

Для работы с этим руководством требуется сначала создать проект библиотеки класса Java с именем JUnit-Sample. После создания проекта JUnit-Sample необходимо скопировать в него два класса из демонстрационного проекта JUnitSampleSol.

Создание проекта библиотеки классов Java

В главном меню выберите "Файл" > "Новый проект".

Выберите библиотеку классов Java в категории Java и нажмите кнопку "Next".

Введите JUnit-Sample в качестве имени проекта и укажите местоположение проекта.

Снимите флажок "Использовать отдельную папку", если он установлен.

В рамках этого руководства копирование библиотек проекта в выделенную папку не целесообразно, поскольку совместное использование библиотек с другими пользователями или проектами не требуется.

Нажмите кнопку "Завершить".

При первом создании теста JUnit среда IDE требует выбрать версию, после чего добавляет узел "Тестовые библиотеки" и библиотеку JUnit.

Загрузка проекта решения

Загрузить демонстрационный проект JUnitSampleSol, который используется в данном учебном курсе, можно следующими способами.

Выполните проверку исходных файлов проекта на выходе из примеров NetBeans, выполнив перечисленные ниже действия.

Выберите в главном меню "Группа > Subversion > Проверить".

В диалоговом окне "Проверка" введите следующий URL-адрес репозитория: https://svn.netbeans.org/svn/samples

В папках на панели "Взятие для изменения" нажмите кнопку "Обзор", чтобы открыть диалоговое окно "Обзор папок репозитория".

Разверните корневой узел и выберите samples/java/JUnitSampleSol. Нажмите кнопку "ОК".

Укажите локальную папку для исходных файлов. Нажмите кнопку "Завершить".

После нажатия кнопки "Готово" среда IDE инициализирует локальную папку в качестве репозитория Subversion и выполняет проверку исходных файлов проекта на выходе.

Щелкните команду "Открыть проект" в диалоговом окне, которое появится после завершения проверки.

Дополнительные сведения об установке Subversion см. в разделе Настройка Subversion в Руководстве по Subversion в IDE NetBeans.

Примечание. Если вы не установите плагин JUnit при установке IDE, то когда вы откроете проект NetBeans, будет отображен запрос на установку подключаемого модуля JUnit для разрешения ссылки на библиотеки JUnit.

Создание классов Java

В этом упражнении требуется скопировать файлы Utils.java и Vectors.java из демонстрационного проекта JUnitSampleSol в проект библиотеки классов, созданный ранее.

В окне 'Проекты' щелкните правой кнопкой мыши узел 'Исходные пакеты' проекта JUnit-Sample и выберите 'Создать' > 'Пакет Java' во всплывающем меню.

Введите sample в качестве имени пакета. Нажмите кнопку "Завершить".

Откройте проект JUnitSampleSol (если он еще не открыт) и разверните узел "Пакеты исходных файлов" в окне проектов.

Скопируйте файлы классов Utils.java и Vectors.java из проекта JUnitSampleSol в пакет исходного кода sample в JUnit-Sample.

Если открыть исходный код этих классов, можно заметить, что класс Utils.java содержит три метода ( computeFactorial , concatWords и normalizeWord ), а класс Vectors.java — два ( equal scalarMultiplication ). В следующем действии будут созданы тестовые классы для каждого класса и написаны тестовые примеры для методов.

Примечание. Проект JUnitSampleSol можно закрыть. поскольку он более не потребуется. Проект JUnitSampleSol содержит все тесты, описанные в документе.

Написание модульных тестов JUnit 3

В этой части руководства рассматривается создание основных модульных тестов JUnit 3 для классов Vectors.java и Utils.java . Для создания скелетных тестовых классов, основанных на классах проекта, будет использована среда IDE. Затем созданные тестовые методы будут изменены, а также добавлены новые тестовые методы.

При первом использовании среды IDE для создания тестов для проекта будет выведен запрос на выбор версии JUnit. Выбранная версия определяется как версия JUnit по умолчанию, и все последующие тесты и наборы тестов в среде IDE будут создаваться для этой версии.

Создание тестового класса для Vectors.java

В этом упражнении будет создан скелет теста JUnit для Vectors.java . В качестве тестовой среды также выберите JUnit, а в качестве версии - JUnit 3.

Примечание. Если используется NetBeans IDE 7.1 или более ранняя версия, указывать тип тестовой среды не требуется, так как JUnit выбран по умолчанию. В NetBeans IDE 7.2 можно выбрать в качестве тестовой среды JUnit или TestNG.

Щелкните правой кнопкой мыши Vectors.java и выберите "Сервис > Создать тесты".

Измените имя тестового класса на VectorsJUnit3Test в диалоговом окне "Create Tests".

В результате изменения имени тестового класса появится предупреждение об изменении имени. Имя по умолчанию – это имя тестируемого класса с добавленным словом "Test". Например, для класса MyClass.java именем по умолчанию тестового класса будет MyClassTest.java . Рекомендуется сохранить имя по умолчанию, но в рамках данного руководства имя будет изменено, так как в этом же пакете будут созданы тесты JUnit 4, а имена тестовых классов должны быть различными.

В списке "Среда" выберите JUnit.

Снимите флажки "Test Initializer" и "Test Finalizer". Нажмите кнопку "ОК".

В диалоговом окне "Select JUnit Version" выберите JUnit 3.x.

Если выбрана версия JUnit 3.x, среда IDE добавляет в проект библиотеку JUnit 3.

При нажатии кнопки "Выбрать" среда IDE создает тестовый класс VectorsJUnit3Test.java в пакете sample под узлом "Тестовые пакеты" в окне "Проекты".

Для создания тестов в пакетах тестов необходимо указать каталог. Местоположение по умолчанию для каталога пакетов тестов находится на корневом уровне проекта, но в зависимости от типа проекта можно указать другое местоположение для каталога в диалоговом окне свойств проекта "Properties".

Анализ созданного тестового класса VectorsJUnit3Test.java в редакторе показывает, что в среде IDE был создан следующий тестовый класс с тестовыми методами для методов equal и scalarMultiplication .

Тело метода каждого созданного теста приводится исключительно в учебных целях и для рассматриваемого теста должно быть изменено. Если автоматическое создание кода не требуется, можно снять флажок "Default Method Bodies" в диалоговом окне "Create Tests".

При создании средой IDE имен для тестовых методов каждому имени метода предшествует слово test , так как в JUnit 3 для определения тестов используются правила именования и отражения. Чтобы тестовые методы могли быть определены, имя каждого из них должно соответствовать синтаксису test_<NAME>_ .

Примечание. В JUnit 4 не требуется использовать этот синтаксис для имен тестовых методов, так как для идентификации тестовых методов можно применять аннотации, а тестовый класс больше не используется для расширения TestCase .

Написание тестовых методов для Vectors.java

В этом упражнении созданные тестовые методы будут изменены для обеспечения их функционирования, а также будут изменены выходные сообщения по умолчанию. Изменять выходные сообщения для выполнения тестов не требуется, но может потребоваться их изменение для идентификации результатов, отображаемых в окне вывода "JUnit Test Results".

Откройте файл VectorsJUnit3Test.java в редакторе.

Измените скелет теста для testScalarMultiplication путем изменения значения println и удаления созданных переменных. После этого тестовый метод должен выглядеть следующим образом (изменения выделены полужирным шрифтом):

Затем добавьте несколько подтверждений для тестирования метода.

В этом тестовом методе используется метод JUnit assertEquals . Для использования утверждения необходимо указать входные переменные и ожидаемый результат. Для успешного прохождения теста метод теста должен выдать все ожидаемые результаты на основе переменных, введенных при выполнении тестового метода. Для охвата возможных перестановок следует добавить достаточное количество утверждений.

Измените скелет теста для testEqual путем удаления созданных тел методов и добавления следующего println .

Тестовый метод в результате должен выглядеть следующим образом:

Измените метод testEqual путем добавления следующих утверждений (выделены полужирным шрифтом).

В этом тесте используются методы JUnit assertTrue и assertFalse для тестирования всех возможных результатов. Для успешного прохождения теста утверждения assertTrue должны быть истинными, а assertFalse – ложными.

Создание тестового класса для Utils.java

Теперь следует создать скелеты тестов для Utils.java . При создании теста в предыдущем упражнении в среде IDE запрашивалась версия JUnit. В этом случае запрос выбора версии не выводится.

Щелкните правой кнопкой мыши Utils.java и выберите "Сервис > Создать тесты".

В списке "Среда" выберите JUnit (если среда еще не выбрана).

В диалоговом окне установите флажки "Инициализатор теста" и "Финализатор теста"(если они еще не установлены).

Измените имя тестового класса на UtilsJUnit3Test в диалоговом окне "Create Tests". Нажмите кнопку "ОК".

При нажатии кнопки "OK" в среде IDE создается файл теста UtilsJUnit3Test.java в каталоге "Test Packages > samples". Обратите внимание на то, что помимо создания скелетов тестов testComputeFactorial , testConcatWords и testNormalizeWord для методов в Utils.java в среде IDE также создаются методы инициализатора теста setUp и финализатора теста tearDown .

Написание тестовых методов для Utils.java

В этом упражнении будет добавлено несколько тестов, демонстрирующих общие принципы работы тестов JUnit. К методам также будет добавлен println , так как некоторые из методов не выводят данные по умолчанию. В результате добавления к методам println можно просмотреть окно результата тестирования JUnit для проверки выполнения методов и порядка их запуска.

Инициализаторы и финализаторы тестов

Методы setUp и tearDown используются для инициализации и финализации условий теста. Для тестирования Utils.java методы setUp и tearDown не требуются, они представлены здесь для демонстрации принципов их работы.

Метод setUp является методом инициализации теста и выполняется перед каждым тестом в классе теста. Для выполнения тестов метод инициализации теста не требуется, однако его следует использовать при необходимости инициализации некоторых переменных до выполнения теста.

Метод tearDown является методом финализатора теста и выполняется после каждого тестового примера в тестовом классе. Метод финализатора теста не требуется для выполнения тестов, однако он может использоваться для удаления всех данных, задействованных при выполнении тестов.

Внесите следующие изменения (выделены полужирным шрифтом) в код println каждого метода.

При выполнении теста для каждого метода в окне вывода "Test Results" отображается текст println . Если код println не добавлен, окно результата выполнения методов не появится.

Тестирование с помощью простого подтверждения

Этот простой тест предназначен для тестирования метода concatWords . Вместо использования созданного метода теста testConcatWords будет добавлен новый метод теста с именем testHelloWorld , использующий единственное простое утверждение для проверки правильности сцепления строк методом. Для утверждения assertEquals в тесте используется синтаксис assertEquals(EXPECTED_RESULT, ACTUAL_RESULT) для проверки соответствия фактического результата ожидаемому результату. Если входные данные для метода concatWords – " Hello ", " , ", " world " и " ! ", то ожидаемый результат должен быть равен "Hello, world!" .

Удалите автоматически созданный тестовый метод testConcatWords из класса UtilsJUnit3Test.java .

Добавьте следующий метод для тестирования метода concatWords .public void testHelloWorld()

Добавьте оператор println для вывода на экран текста о тесте в окне "JUnit Test Results".

Тестирование с использованием тайм-аута

Этот тест демонстрирует проверку метода на длительность выполнения. Если метод выполняется слишком долго, поток выполнения теста прерывается, а тест завершается сбоем. Можно указать предел времени для теста.

Тестовый метод вызывает метод computeFactorial в Utils.java . Можно предположить, что метод computeFactorial правилен, но в этом случае требуется его протестировать на выполнение вычисления за 1000 миллисекунд. Поток выполнения computeFactorial и поток выполнения теста запускаются одновременно. Поток выполнения теста останавливается через 1000 миллисекунд и выдает TimeoutException , если поток выполнения computeFactorial не завершается раньше. Потребуется добавить сообщение для его отображения при выдаче TimeoutException .

Удалите созданный тестовый метод testComputeFactorial .

Добавьте метод testWithTimeout , вычисляющий факториал случайного числа.*public void testWithTimeout() throws InterruptedException, TimeoutException < final int factorialOf = 1 + (int) (30000 * Math.random()); System.out.println("computing " + factorialOf + '!');

Можно изменить строку Thread.sleep для изменения количества миллисекунд до выдачи тайм-аута.

Добавьте следующий код println (выделен полужирным шрифтом) для отображения текста о тесте в окне "JUnit Test Results".

Тестирование на ожидаемое исключение

Этот тест предназначен для тестирования на ожидаемое исключение. Метод завершится сбоем, если не будет выдано ожидаемое исключение. В этом случае выполняется тестирование метода computeFactorial на результат IllegalArgumentException с отрицательной входной переменной (-5).

Добавьте следующий метод testExpectedException для вызова метода computeFactorial со входной переменной -5.public void testExpectedException() < try < final int factorialOf = -5; System.out.println(factorialOf + "! = " + Utils.computeFactorial(factorialOf)); fail("IllegalArgumentException was expected"); >catch (IllegalArgumentException ex) < >>

Добавьте следующий код println (выделен полужирным шрифтом) для отображения текста о тесте в окне "JUnit Test Results".

Отключение теста

Этот тест включает способы временного отключения тестового метода. В JUnit 3 в качестве тестовых методов распознаются только методы с именем, начинающимся с test . В этом случае для отключения тестового метода к его имени добавляется приставка DISABLED_ .

Удалите созданный тестовый метод testNormalizeWord .

При выполнении тестового класса будет выполнен тестовый метод testTemporarilyDisabled .

Введите DISABLED_ (выделено полужирным шрифтом) перед именем тестового метода.

После написания всех тестов можно выполнить тест и просмотреть результат в окне "JUnit Test Results".

Выполнение тестов

При выполнении теста JUnit результаты отображаются в окне "Результаты теста JUnit" в среде IDE. Можно выполнить отдельные тестовые классы JUnit либо выбрать в главном меню "Run > Test ИМЯ_ПРОЕКТА" для выполнения всех тестов проекта. При выборе "Run > Test" в среде IDE выполняются все тестовые классы в папке "Test Packages". Для выполнения отдельного класса тестирования щелкните правой кнопкой мыши класс теста в узле 'Пакеты тестов' и выберите 'Выполнить файл'.

Выберите "Выполнить > Выбрать основной проект" в главном меню, затем выберите проект JUnit-Sample.

Выберите "Run > Test Project (JUnit-Sample)" из главного меню.

Выберите "Окно > Инструменты IDE > Результаты теста", чтобы открыть окно "Результаты теста".

При выполнении теста будет получен один из следующих результатов в окне "JUnit Test Results".

В примере на этом рисунке (для увеличения щелкните изображение) проект успешно прошел все тесты. На левой панели выводятся результаты отдельных тестовых методов, а на правой панели выводится результат теста. В окне вывода отображается порядок выполнения тестов. Добавление к каждому тестовому методу println обеспечивает вывод имени теста в окне вывода. Можно также отметить, что в UtilJUnit3Test метод setUp выполнялся перед каждым тестовым методу, а метод tearDown выполнялся после каждого метода.

В примере на этом рисунке (для увеличения щелкните изображение) тестирование проекта завершилось сбоем. Выполнение метода testTimeout заняло слишком много времени, поэтому поток выполнения теста был прерван и явился причиной сбоя теста. Для вычисления факториала случайного числа потребовалось более 1000 миллисекунд (22 991).

Следующим действием после создания классов модульных тестов будет создание тестовых наборов. Описание способа запуска указанных тестов группой вместо выполнения каждого теста по отдельности приводится в разделе Создание наборов тестов "JUnit 3".

Написание тестов JUnit 4

В этом упражнении будут созданы модульные тесты JUnit 4 для классов Vectors.java и Utils.java . Тесты JUnit 4 аналогичны тестам JUnit 3, однако при написании этих тестов применяется более простой синтаксис.

Для создания скелетов тестов на основе классов проекта будут использоваться мастера IDE. При первом использовании среды IDE для создания некоторых скелетов тестов будет выведен запрос на выбор версии JUnit.

Примечание. Если JUnit 3.x уже выбрана как версия по умолчанию для тестирования, необходимо изменить настройки по умолчанию на настройки версии JUnit 4.x. Чтобы изменить версию по умолчанию JUnit, разверните узел 'Библиотеки тестов', щелкните правой кнопкой мыши библиотеку JUnit и выберите 'Удалить'. Теперь можно использовать диалоговое окно "Добавить библиотеку", чтобы добавить библиотеку JUnit 4, или выбрать версию 4.х, если при создании нового теста требуется выбрать версию JUnit. Тесты JUnit 3 также можно будет выполнять, но для новых тестов будет использоваться JUnit 4.

Создание тестового класса для Vectors.java

В этом упражнении будут созданы скелеты теста JUnit для Vectors.java .

Примечание. Если используется NetBeans IDE 7.1 или более ранняя версия, указывать тип тестовой среды не требуется, так как JUnit выбран по умолчанию. В NetBeans IDE 7.2 можно выбрать в качестве тестовой среды JUnit или TestNG.

Щелкните правой кнопкой мыши Vectors.java и выберите "Сервис > Создать тесты".

В диалоговом окне "Create Tests" измените имя тестового класса на VectorsJUnit4Test.

В результате изменения имени тестового класса появится предупреждение об изменении имени. Имя по умолчанию – это имя тестируемого класса с добавленным словом "Test". Например, для класса MyClass.java именем по умолчанию тестового класса будет MyClassTest.java . В отличие от JUnit 3, в JUnit 4 добавление слова "Test" к имени теста не обязательно. Рекомендуется сохранить имя по умолчанию, но так как в рамках данного руководства все тесты JUnit создаются в одном пакете, имена тестовых классов должны быть различны.

В списке "Среда" выберите JUnit.

Снимите флажки "Test Initializer" и "Test Finalizer". Нажмите кнопку "ОК".

В диалоговом окне "Select JUnit Version" выберите JUnit 4.x. Нажмите кнопку "Выбрать".

При нажатии кнопки "ОК" среда IDE создает тестовый класс VectorsJUnit4Test.java в пакете sample под узлом "Тестовые пакеты" окна проектов.

Примечание. Для создания тестов в пакетах тестов необходимо указать каталог. Местоположение по умолчанию для каталога пакетов тестов находится на корневом уровне проекта, но можно указать другое местоположение для каталога в диалоговом окне свойств проекта "Properties".

При просмотре в редакторе VectorsJUnit3Test.java можно отметить, что в среде IDE созданы тестовые методы testEqual и testScalarMultiplication . В VectorsJUnit4Test.java для каждого тестового метода используется аннотация @Test . В среде IDE имена для тестовых методов создаются на основе имен метода в Vectors.java , но к имени тестового метода не обязательно добавлять test . Тело по умолчанию каждого созданного тестового метода представлено исключительно в учебных целях и для фактического использования должно быть изменено.

Если автоматическое создание тел методов не требуется, можно снять флажок "Default Method Bodies" в диалоговом окне "Create Tests".

В среде IDE также создаются следующие методы инициализатора и финализатора классов теста:

В среде IDE методы инициализатора и финализатора классов создаются по умолчанию при создании класса теста JUnit 4. Аннотации @BeforeClass и @AfterClass используются для выбора методов, которые должны быть запущены до и после выполнения тестового класса. Методы можно удалить, так как для тестирования Vectors.java они не нужны.

Также можно выполнить настройку методов, созданных по умолчанию при настройке свойств JUnit в окне "Options".

Примечание. Для тестов JUnit обраите внимание, что по умолчанию среда IDE добавляет статическое объявление импорта для org.junit.Assert.* .

Написание тестовых методов для Vectors.java

В этом упражнении будет изменен каждый из автоматически созданных тестовых методов для тестирования методов при помощи метода JUnit assert и изменения имен тестовых методов. JUnit 4 предоставляет дополнительную гибкость при именовании тестовых методов, поскольку они определяются аннотацией @Test и не требуют добавления слова test к имени.

Откройте в редакторе VectorsJUnit4Test.java .

Измените тестовый метод для testScalarMultiplication путем изменения имени метода, значения println и удаления созданных переменных. После этого тестовый метод должен выглядеть следующим образом (изменения выделены полужирным шрифтом):

Примечание. При написании тестов изменять результат вывода не требуется. В этом упражнении это выполнено для упрощения идентификации результатов тестирования в окне вывода.

Затем добавьте несколько подтверждений для тестирования метода.

В этом тестовом методе используется метод JUnit assertEquals . Для использования утверждения необходимо указать входные переменные и ожидаемый результат. Для успешного прохождения теста метод теста должен выдать все ожидаемые результаты на основе переменных, введенных при выполнении тестового метода. Для охвата возможных перестановок следует добавить достаточное количество утверждений.

Измените имя тестового метода с testEqual на equalsCheck .

Удалите созданное тело тестового метода equalsCheck .

Добавьте следующий метод println в тестовый метод equalsCheck .System.out.println(" VectorsJUnit4Test: equalsCheck()");*

Тестовый метод в результате должен выглядеть следующим образом:

Измените метод equalsCheck путем добавления следующих утверждений (выделены полужирным шрифтом).

В этом тесте используются методы JUnit assertTrue и assertFalse для тестирования всех возможных результатов. Для успешного прохождения теста утверждения assertTrue должны быть истинными, а assertFalse – ложными.

Создание тестового класса для Utils.java

Теперь перейдем к созданию тестовых методов JUnit для Utils.java . При создании тестового класса в предыдущем упражнении в среде IDE выводился запрос на выбор версии JUnit. В этот раз выбирать версию не потребуется, так как версия JUnit уже определена, и все последующие тесты JUnit будут созданы с использованием этой версии.

Примечание. Если выбрана версия JUnit 4, написание и выполнение тестов JUnit 3 также допустимо, но в среде IDE для создания скелетов теста используется шаблон JUnit 4.

Щелкните правой кнопкой мыши Utils.java и выберите "Сервис > Создать тесты".

В списке "Среда" выберите JUnit (если среда еще не выбрана).

В диалоговом окне установите флажки "Инициализатор теста" и "Финализатор теста"(если они еще не установлены).

В диалоговом окне "Create Tests" измените имя тестового класса на UtilsJUnit4Test. Нажмите кнопку "ОК".

При нажатии кнопки "OК" в среде IDE создается тестовый файл UtilsJUnit4Test.java в каталоге "Тестовые пакеты" > демонстрационный каталог. При этом в среде IDE будут созданы тестовые методы testComputeFactorial , testConcatWords и testNormalizeWord для методов в Utils.java . В среде IDE также создаются методы инициализатора и финализатора для теста и тестового класса.

Написание тестовых методов для Utils.java

В этом упражнении будет добавлено несколько тестов, демонстрирующих общие элементы теста JUnit. Также необходимо добавить в методы println , так как выполнение некоторых методов не приводит к отображению в окне "JUnit Test Results" информации, указывающей на выполнение или успешное прохождение теста. Добавление println в методы позволит отслеживать процесс выполнения методов и порядок их выполнения.

Инициализаторы и финализаторы тестов

При создании тестового класса для Utils.java в среде IDE создаются аннотированные методы инициализатора и финализатора. В качестве имени метода можно выбрать любое имя, так как обязательных требований в отношении имен не существует.

Примечание. Для тестирования Utils.java не требуются методы инициализатора и финализатора, но они рассматриваются в этом руководстве для демонстрации принципов их работы.

В JUnit 4 для обозначения следующих типов методов инициализатора и финализатора можно использовать аннотации.

Инициализатор класса тестов. Аннотация @BeforeClass отмечает метод как метод инициализации класса теста. Метод инициализации тестового класса запускается только один раз и выполняется только перед выполнением любых других методов в тестовом классе. Например, вместо создания подключения к базе данных в инициализаторе теста и создания нового подключения перед каждым тестовым методом можно использовать инициализатор тестового класса для открытия подключения перед выполнением тестов. Затем можно закрыть подключение в финализаторе тестового класса.

Финализатор класса тестов. Аннотация @AfterClass помечает метод как метод финализации класса теста. Метод финализатора тестового класса выполняется только один раз и только после выполнения других методов в тестовом классе.

Инициализатор теста. Аннотация @Before отмечает метод как метод инициализации теста. Метод инициализации теста выполняется перед каждым тестом в тестовом классе. Для выполнения тестов метод инициализации теста не требуется, однако его следует использовать при необходимости инициализации некоторых переменных до выполнения теста.

Финализатор теста. Аннотация @After помечает метод как метод финализации теста. Метод финализатора теста выполняется после каждого теста в тестовом классе. Метод финализатора теста не требуется для выполнения тестов, но финализатор может использоваться для удаления всех данных, задействованных при выполнении тестов.

Измените следующее (выделено полужирным шрифтом) в UtilsJUnit4Test.java .

При выполнении тестового класса добавленный ранее текст println отображается в окне вывода "JUnit Test Results". Таким образом, информация, указывающая на выполнение методов инициализатора и финализатора, выводится только в том случае, если был добавлен println .

Тестирование с помощью простого подтверждения

Этот простой тест предназначен для тестирования метода concatWords . Вместо использования созданного тестового метода testConcatWords будет добавлен новый тестовый метод с именем helloWorldCheck , использующий единственное простое утверждение для проверки правильности сцепления строк методом. Для утверждения assertEquals в тесте используется синтаксис assertEquals(EXPECTED_RESULT, ACTUAL_RESULT) для проверки соответствия фактического результата ожидаемому результату. Если входные данные для метода concatWords – " Hello ", " , ", " world " и " ! ", то ожидаемый результат должен быть равен "Hello, world!" .

Удалите созданный тестовый метод testConcatWords .

Добавьте следующий метод helloWorldCheck для тестирования Utils.concatWords .@Test public void helloWorldCheck()

Добавьте оператор println для вывода на экран текста о тесте в окне "JUnit Test Results".