Добавление методов в тестовый класс Junit
Двигаясь далее мы добавим больше тестов в ранее созданный класс JunitMathProvider_1. Мы уже имеем метод, который тестирует метод MathProvider.Add(). Создадим другой метод для тестирования MathProvider.Subtract(). Он будет выглядеть следующим образом:
1 2 3 4 5 6 7 8 9 |
<span class="crayon-sy">@</span><span class="crayon-e">Test</span> public void subtract() { System.out.println("Starting test " + new Object(){}.getClass().getEnclosingMethod().getName()); int firstNumber = 10; int secondNumber = 20; assertEquals(firstNumber - secondNumber, provider.Substract(firstNumber, secondNumber)); System.out.println("Ending test " + new Object(){}.getClass().getEnclosingMethod().getName()); } |
Он довольно похож на метод add() и также имеет аннотацию @Test. Также, после добавления этого теста Вы увидете, что Junit покажет уже два теста в классе JunitMathProvider_1.
Создание дополнительного тестового класса Junit
Давайте создадим второй класс и назовем его “JunitMathProvider_2″. В этом классе мы будем тестировать метод MathProvider.Multiply. Этот класс похож на предыдущий, но вместо двух методов – add() и subtract() будет тестировать только метод multiply(). Класс будет иметь следующий вид:
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 |
package Application.UnitTests; import org.junit.runner.JUnitCore; import org.junit.runner.Result; import org.junit.runner.notification.Failure; package Application.UnitTests; import static org.junit.Assert.assertEquals; import org.junit.Test; import Application.MathProvider; public class JunitMathProvider_2 { MathProvider provider; public JunitMathProvider_2{ provider = new MathProvider(); }; @Test public void multiply() { System.out.println("Starting test " + new Object() {}.getClass().getEnclosingMethod().getName()); int firstNumber = 10; int secondNumber = 20; assertEquals(firstNumber * secondNumber, provider.Multiply(firstNumber, secondNumber)); System.out.println("Ending test " + new Object(){}.getClass().getEnclosingMethod().getName()); } } |
Запуск тестовых методов и тестовых классов
Все, что нужно сделать, – это добавить еще один класс в метод JUnitCore.runClasses. Обновленный класс TestRunner будет выглядеть следующим образом:
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 |
package junits; 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) { //This result object has many methods and it is very useful //Type result and press dot, all the methods will display //This statement is to load all type of results in the result object Result result = JUnitCore.runClasses(JunitMathProvider_1.class, JunitMathProvider_2.class); //Here it is getting the run count from the result object System.out.println("Total number of tests " + result.getRunCount()); //This is to get the failure count from the result object System.out.println("Total number of tests failed " + result.getFailureCount()); for(Failure failure : result.getFailures()) { //This will print message only in case of failure System.out.println(failure.getMessage()); } //This will print the overall test result in boolean type System.out.println(result.wasSuccessful()); } } |
Теперь, как Вы можете увидеть, JUnit покажет два класса и три метода: