Mes jau esame susipažinę su JUnit testavimo sistema. Jis naudojamas „Java“ vienetų testavimui atlikti. JUnit bandomasis atvejis yra kodo rinkinys, užtikrinantis, ar mūsų programos kodas veikia taip, kaip tikėtasi, ar ne.
Į Java , galimas dviejų tipų vienetų tikrinimas: rankinis testavimas ir automatinis testavimas. Rankinis testavimas yra specialus testavimo tipas, kai bandomieji atvejai atliekami nenaudojant jokio įrankio. Kitaip nei rankinis testavimas, automatinis testavimas neįmanomas be jokio įrankio palaikymo.
The org.junit pakete yra keletas klasių ir paketų, kurie padeda mums užtikrinti, ar mūsų kodas pateikia laukiamą išvestį, ar ne. Šie paketai ir klasės yra Assert, After, Before, Test ir kt.
„Java“ kodui išbandyti naudosime įrankį „Eclipse“. Pirmiausia sukuriame java kodą, kurį norime išbandyti, o po to parašysime savo Java kodo bandymo klasę arba bandomąjį atvejį.
Paimkime JUnit bandomojo atvejo pavyzdį, kad suprastume, kaip testavimas iš tikrųjų atliekamas Java.
JunitTestCaseExample.java
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(); } }
TestJunitTestCaseExample.java
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(); } }
TestRunner.java
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()); } }
Paaiškinimas
Sukūrėme tris java klases, t.y. JunitTestCaseExample.java, TestJunitTestCaseExample.java , ir TestRunner .java. Viduje JunitTestCaseExample.java klasėje, sukūrėme kodą, kurį norime išbandyti. Šioje klasėje sukuriame pavadinimų sąrašą ir keturis metodus, kaip pridėti elementą, pašalinti elementą, gauti sąrašo dydį ir pašalinti visus elementus iš sąrašo.
Viduje TestJunitTestCaseExample.java , rašome JunitTestCaseEample.java klasės bandomuosius atvejus. Mes sukuriame objektą JunitTestCaseExample.java klasę, o naudodami jos objektą išbandysime visus jos metodus. Mes naudojame assertEquals() būdas patikrinti tikrąjį rezultatą su laukiama produkcija.
Mes sukuriame TestRunner.java klasę, kad galėtume vykdyti bandymų atvejus. Jame yra pagrindinis() metodas, kuriuo paleidžiame TestJunitTestCaseExample.java klasę naudodami JUnitCore metodą runClasses(). Šiuo metodu perduodame TestJunitTestCaseExample.java klasės failą. Metodo runClasses() grąžintas rezultatas bus saugomas rezultato kintamajame, kurio tipas yra Result.
Dabar mes paleisime klasę TestRunner.java, kad vykdytume bandomuosius atvejus. Gausime išvestį „true“, kai bandomieji atvejai bus išlaikyti, ir „false“, kai bandomieji atvejai nebus išlaikyti.
Išvestis