Већ смо упознати са ЈУнит оквир за тестирање. Користи се за тестирање јединица у Јави. ЈУнит тестни случај је скуп кода који осигурава да ли наш програмски код ради како се очекује или не.
Ин Јава , могуће су две врсте тестирања јединица, ручно тестирање и аутоматизовано тестирање. Ручно тестирање је посебна врста тестирања у којој се тест случајеви извршавају без употребе алата. За разлику од ручног тестирања, аутоматско тестирање није могуће без подршке било ког алата.
Тхе орг.јунит пакет пружа неколико класа и пакета, што нам помаже да осигурамо да ли наш код даје очекивани излаз или не. Ови пакети и класе су Ассерт, Афтер, Бефоре и Тест, итд.
Користићемо алатку ецлипсе за тестирање Јава кода. Прво креирамо јава код који желимо да тестирамо, а након тога ћемо написати тест класу или тест случај за наш Јава код.
Узмимо пример ЈУнит тест случаја да бисмо разумели како се тестирање заправо изводи у Јави.
ЈунитТестЦасеЕкампле.јава
package JavaTpoint. JunitExamples; import java.util.ArrayList; import java.util.List; public class JunitTestCaseExample { private List students = new ArrayList(); public void remove(String name) { students.remove(name); } public void add(String name) { students.add(name); } public void removeAll(){ students.clear(); } public int sizeOfStudent() { return students.size(); } }
ТестЈунитТестЦасеЕкампле.јава
package JavaTpoint.JunitExamples; import static org.junit.Assert.assertEquals; import org.junit.Test; public class TestJunitTestCaseExample { JunitTestCaseExample obj = new JunitTestCaseExample(); @Test public void testAdd() { obj.add('Emma'); obj.add('Ronan'); obj.add('Antonio'); obj.add('Paul'); assertEquals('Adding 4 student to list', 4, obj.sizeOfStudent()); } @Test public void testSize() { obj.add('Emma'); obj.add('Ronan'); obj.add('Antonio'); assertEquals('Checking size of List', 3, obj.sizeOfStudent()); } @Test public void testRemove() { obj.add('Antonio'); obj.add('Paul'); obj.remove('Paul'); assertEquals('Removing 1 student from list', 1, obj.sizeOfStudent()); } @Test public void removeAll() { obj.removeAll(); } }
ТестРуннер.јава
package JavaTpoint.JunitExamples; import org.junit.runner.Result; import org.junit.runner.JUnitCore; import org.junit.runner.notification.Failure; public class TestRunner { public static void main(String[] args) { Result result = JUnitCore.runClasses(TestJunitTestCaseExample.class); for (Failure fail : result.getFailures()) { System.out.println(fail.toString()); } System.out.println(result.wasSuccessful()); } }
Објашњење
број у низ јава
Направили смо три јава класе, тј. ЈунитТестЦасеЕкампле.јава, ТестЈунитТестЦасеЕкампле.јава , и ТестРуннер .јава. У ЈунитТестЦасеЕкампле.јава класе, креирали смо код који желимо да тестирамо. У овој класи креирамо листу имена и четири методе за додавање елемента, уклањање елемента, добијање величине листе и уклањање свих елемената са листе.
У ТестЈунитТестЦасеЕкампле.јава , пишемо тест случајеве за класу ЈунитТестЦасеЕампле.јава. Стварамо објекат од ЈунитТестЦасеЕкампле.јава класе, а коришћењем њеног објекта тестираћемо све њене методе. Користимо ассертЕкуалс() метод за проверу стварног резултата са очекиваним излазом.
Креирамо класу ТестРуннер.јава за извршавање тест случајева. Садржи метод маин() у коме покрећемо класу ТестЈунитТестЦасеЕкампле.јава користећи метод рунЦлассес() ЈУнитЦоре. У овој методи прослеђујемо датотеку класе ТестЈунитТестЦасеЕкампле.јава. Резултат који враћа метода рунЦлассес() биће сачуван у променљивој резултата типа Ресулт.
Сада ћемо покренути класу ТестРуннер.јава да извршимо тест случајеве. Добићемо излаз труе када су тест случајеви прошли и лажни када тест случајеви нису прошли.
Излаз