Vi är redan bekanta med JUnit testramverk. Den används för att utföra enhetstestning i Java. JUnit-testfallet är den koduppsättning som säkerställer om vår programkod fungerar som förväntat eller inte.
I Java , det finns två typer av enhetstestning möjliga, manuell testning och automatiserad testning. Manuell testning är en speciell typ av testning där testfallen utförs utan att använda något verktyg. Till skillnad från manuell testning är automatiserad testning inte möjlig utan stöd för något verktyg.
De org.junit paket tillhandahåller flera klasser och paket, vilket hjälper oss att säkerställa om vår kod ger den förväntade utdata eller inte. Dessa paket och klasser är Assert, After, Before och Test, etc.
Vi kommer att använda eclipse-verktyget för att testa java-koden. Vi skapar först Java-koden som vi vill testa, och efter det kommer vi att skriva testklassen eller testfallet för vår Java-kod.
Låt oss ta exemplet med ett JUnit-testfall för att förstå hur testning faktiskt utförs i 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()); } }
Förklaring
Vi har skapat tre Java-klasser, dvs. JunitTestCaseExample.java, TestJunitTestCaseExample.java , och TestRunner .java. I den JunitTestCaseExample.java klass skapade vi koden som vi vill testa. I den här klassen skapar vi en lista med namn och fyra metoder för att lägga till ett element, ta bort ett element, hämta listans storlek och ta bort alla element från listan.
I den TestJunitTestCaseExample.java , skriver vi testfallen för JunitTestCaseEample.java-klassen. Vi skapar ett objekt av JunitTestCaseExample.java klass, och genom att använda dess objekt kommer vi att testa alla dess metoder. Vi använder assertEquals() metod för att kontrollera det faktiska resultatet med den förväntade produktionen.
Vi skapar klassen TestRunner.java för att utföra testfallen. Den innehåller metoden main() där vi kör klassen TestJunitTestCaseExample.java med metoden runClasses() i JUnitCore. I den här metoden skickar vi klassfilen för TestJunitTestCaseExample.java. Resultatet som returneras av metoden runClasses() lagras i resultatvariabeln av typen Result.
Nu kommer vi att köra klassen TestRunner.java för att köra testfallen. Vi kommer att få utdata sann när testfallen är godkända och falska när testfallen inte är godkända.
Produktion