JUnit — введение в юнит-тесты. Пример JUnit Hello world
Введение в юнит-тестирование с помощью библиотеки JUnit. Пример JUnit Hello world
Используемые технологии и библиотеки
- JUnit 4.12
1. Описание задачи
Создать юнит тесты для приложения «калькулятор». Показать применение базовых аннотаций JUnit,
2. Структура проекта
Класс Calculator описывает простые арифметические операции. Этот класс послужит основой для написания юнит тестов. Тестирующие классы находятся в пакете test.
3. pom.xml
Для подключения библиотеки JUnit используется maven.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>ru.javastudy</groupId> <artifactId>junitStudy</artifactId> <version>1.0-SNAPSHOT</version> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> </dependency> </dependencies> </project> |
Других зависимостей подключать не нужно.
4. Calculator
Наш простой класс, описывающий калькулятор описан чуть ниже.
Calculator:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
package ru.javastudy.junit; /** * Created for JavaStudy.ru on 13.01.2016. */ public class Calculator { public int getSum(int x, int y) { return x+y; } public int getDivide(int x, int y) { return x/y; } public int getMultiple(int x, int y) { return x*y; } } |
5. Создание тестирующих классов
В IntelliJ IDEA можно создать тестирующих класс автоматически. Для этого можно нажать alt + enter на классе и выбрать «Create test». Далее выбрать методы, которые нужно будет протестировать. В результате будет создан класс CalculatorTest с тремя выбранными методами. Эти методы необходимо реализовать самостоятельно.
6. CalculatorTest
После создания тестирующего класса нам необходимо реализовать методы, которые мы хотим проверить. Так же были добавлены другие методы, которые будут демонстрировать работу базовых JUnit аннотаций.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
package ru.javastudy.junit; import org.junit.*; import static org.junit.Assert.*; /** * Created by retinka on 13.01.2016. */ public class CalculatorTest { private Calculator calculator; @BeforeClass public static void beforeClass() { System.out.println("Before CalculatorTest.class"); } @AfterClass public static void afterClass() { System.out.println("After CalculatorTest.class"); } @Before public void initTest() { calculator = new Calculator(); } @After public void afterTest() { calculator = null; } @Test public void testGetSum() throws Exception { assertEquals(15, calculator.getSum(7,8)); } @Test public void testGetDivide() throws Exception { assertEquals(20, calculator.getDivide(100,5)); } @Test public void testGetMultiple() throws Exception { } @Test(expected = ArithmeticException.class) public void divisionWithException() { calculator.getDivide(15,0); } @Ignore("Message for ignored test") @Test public void ignoredTest() { System.out.println("will not print it"); } @Test(timeout = 500) public void timeStampTest() { while (true); } } |
Применяемые аннотации:
- @BeforeClass, @AfterClass — методы под аннотациями будут выполнены при начале использования класса и по завершению соответственно.
- @Before, @After — методы под этими аннотациями будут выполнены до запуска очередного теста и после.
- @Test — указывает на тестирующий метод.
В результате запуска тестов получим следующую картину:
Таким несложным образом можно создать простейшие unit-тесты в java.