JUnit Listener — добавление слушателей в юнит-тесты
Добавление слушателей JUnit Listener в юнит-тесты.
Основной код описан в JUnit — введение в юнит-тесты. Пример JUnit Hello world.
Чтобы создать класс-слушатель для юнит-тестов, необходимо расширить класс org.junit.runner.notification.RunListener.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
package ru.javastudy.junit; import org.junit.runner.Description; import org.junit.runner.notification.Failure; import org.junit.runner.notification.RunListener; /** * Created by JavaStudy on 13.01.2016. */ public class CalcTestListener extends RunListener { @Override public void testStarted(Description description) throws Exception { System.out.println("CalcTestListener - test started: " + description); } @Override public void testFailure(Failure failure) throws Exception { System.out.println("CalcTestListener - test failure " + failure); } } |
У родительского класса есть набор методов для различных состояний прохождения теста. В нашем классе переопределены только два из них — при запуске теста и при его не прохождении.
Для демонстрации добавления слушателя к выполняемым тестам был написан простой main класс.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
package ru.javastudy.junit; import org.junit.runner.JUnitCore; public class MainTest { public static void main(String[] args) { System.out.println("Second example in MainTest"); JUnitCore core = new JUnitCore(); core.addListener(new CalcTestListener()); core.run(CalculatorTest.class); System.out.println(""); System.out.println("Third example in MainTest"); } } |
После запуска этого метода мы получим в консоль следующий вывод.
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 |
Second example in MainTest Before CalculatorTest.class CalcTestListener - test started: divisionWithException(ru.javastudy.junit.CalculatorTest) initTest() divisionWithException() afterTest() CalcTestListener - test started: timeStampTest(ru.javastudy.junit.CalculatorTest) initTest() timeStampTest() afterTest() CalcTestListener - test failure timeStampTest(ru.javastudy.junit.CalculatorTest): test timed out after 500 milliseconds CalcTestListener - test started: testGetDivide(ru.javastudy.junit.CalculatorTest) initTest() testGetDivide() afterTest() CalcTestListener - test started: testGetSum(ru.javastudy.junit.CalculatorTest) initTest() testGetSum() afterTest() CalcTestListener - test started: testGetMultiple(ru.javastudy.junit.CalculatorTest) initTest() testGetMultiple() afterTest() After CalculatorTest.class Third example in MainTest Process finished with exit code 0 |
Как видите слушатель отработал при каждом запуске теста, а также при падении одного из них.
Исходный код
18 13490 Total Views 4 Views Today