-
Notifications
You must be signed in to change notification settings - Fork 56
Unit тестирование
Unit-тестирование важная составляющая процесса разработки приложения. Unit-тестирование позволяет быть уверенным в изменениях, что они не "ломают" ранее реализованную логику.
unit-тестирование сводится к проверке условий (утверждений), которые в Junit представлены как вызов метода assert*
.
В качестве библиотеки для проведения unit-тестирования будем использовать JUnit версии 4.11. Добавим в pom.xml следующую зависимость:
pom.xml
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<scope>test</scope>
- указывает, что это зависимость на время проведения тестов
Минимальный тест будет выглядеть как: AppTest.java
package learn.sprofile;
import junit.framework.TestCase;
public class AppTest extends TestCase {
@Test
public void testSomeData() {
assertTrue("Constant is not true", true);
}
}
Данный тест имеет 1 тестовый метод в котором проверяется 1 утверждение, в случае неверности устверждения будет выведена строка "Constant is not true". Тестовый метод помечен с помощью аннотации @Test
.
Для запуска тестов в maven используется surefire-plugin.
Запуск тестов приложения
$ mvn test
Запуск единичного теста
$ mvn test -Dtest=TestClass
Запуск метода в тесте
$ mvn test -Dtest=TestClass#someMethod
Запуск всех методов, начинающихся с testRequest
в классе теста
$ mvn test -Dtest=TestClass#testRequest*
todo!
В IDE(eclipse, netbeans, idea) существует возможность запуска тестов непосредственно из IDE и в IDE же и смотреть результаты тестов.
Рассмотрим запуск и анализ результатов тестов в NetBeans.
Для запуска всех тестов необходимо выбрать пункт "Протестировать проект" в меню "Выполнить" или нажать Alt+F6. Для теста одиночного файла необходимо выбрать "Протестировать файл" или нажать Ctrl+F6.
В окне "Результаты тестирования" можно увидеть все пройденные или не пройденные тесты. Кроме того, можно ознакомиться с причиной "падения" теста и провести повторный запуск теста.
Для тестирования проектов, написанных с использованием Spring framework, необходимо на этапе запуска тестов создавать контекст Spring. В состав spring входит библиотека Spring test, которая содержит набор классов для облегчения тестирования Spring-приложений.
Для начала подключим Spring test в pom.xml
pom.xml
<properties>
<spring.version>3.2.2.RELEASE</spring.version>
</properties>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${spring.version}</version>
</dependency>
После подключения Spring test появляется возможность использовать контекст Spring в тестах JUnit. В идеологии junit есть такое понятие как test runner - это вспомогательные классы, которые осуществляют запуск тестов. Одним из таких runner'ов является runner для поднятия контекста Spring в тестах.
Для его использования необходимо указать класс SpringJUnit4ClassRunner
в качестве аргумента аннотации @RunWith
.
@RunWith(SpringJUnit4ClassRunner.class)
public class SomeTest extends TestCase {
}
После указания runner'а необходимо указать местоположение файлов конфигурации контекста с использованием аннотации @ContextConfiguration
.
Результирующее объявление класса теста будет выглядеть так:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"classpath:/spring/root.xml"})
public class UserProfileVoterTest extends TestCase {
...
}
путь к конфигурации указывается относительно директории test/resources
, в которой должны располагаться файлы ресурсов для тестов.
todo!
todo!
todo!