what is junit test fixture
Acest tutorial va explica când, de ce și cum se utilizează dispozitivul de testare JUnit cu exemple simple de dispozitive de testare JUnit pentru înțelegerea ușoară a conceptului:
Vom învăța -
- Când și de ce avem nevoie să folosim Test Fixture?
- Care este abordarea pentru utilizarea acestuia în codul nostru pentru testul JUnit?
- Câteva exemple pentru a înțelege termenul „Dispozitiv de testare” au apărut în paralel cu un avans pe adnotările ciclului de viață JUnit 4, cum ar fi @Before, @After, @BeforeClass, @AfterClass și @Test.
=> Verificați TOATE tutorialele JUnit aici.
Ce veți învăța:
Dispozitiv de testare JUnit
Atunci când există mai multe cazuri de testare într-o clasă JUnit, ar putea exista un obiect comun sau obiecte utilizate de toate cazurile de testare. În acest caz, ar putea exista funcții specifice care ar putea fi comune în toate cazurile de testare.
Acest lucru nu înseamnă că obiectele de testare trebuie să fie partajate de toate cazurile de testare. Schimbarea obiectului efectuată într-un test nu trebuie să fie partajată între toate testele, deoarece aceste teste sunt independente și pot fi executate într-o ordine diferită, conform setărilor lor de prioritate.
când trebuie efectuată testarea de regresie
Înțelegerea holistică a termenul „Dispozitiv de testare” este o stare fixă într-un cod sau un set de pași fixi într-un cod care este utilizat ca o condiție prealabilă și alte câteva seturi de pași care sunt folosiți ca postcondiție pentru toate testele.
Astfel, cu alte cuvinte, identificăm acele seturi de instrucțiuni care se vor repeta pentru toate testele și, prin urmare, încercați să setați un mediu fix pentru a rula metodele noastre de testare.
scop de a utiliza Test Fixture este de a elimina duplicarea codului comun pentru toate probele.
care este diferența dintre planul de testare și strategia de testare
Să încercăm să înțelegem implementarea practică a dispozitivului de testare într-un test JUnit.
metoda setUp ()
- Există teste care necesită inițializarea anumitor obiecte (șir, număr întreg sau ArrayList sau orice obiect în acest sens). Puteți crea o metodă public void setUp () în care ați putea declara variabilele de instanță pentru obiectele comune. Plasați această metodă setUp () sub adnotare @Inainte de . Cu adnotarea @Before, cadrul va rula metoda setUp () înainte de fiecare execuție a cazului de testare.
- Metoda setUp () ar putea fi, de asemenea, utilizată în cazul în care doriți să lansați un browser cu o adresă URL specifică, deoarece primul pas rulați un caz de test care urmează conectării la aplicație cu acreditări predefinite.
metoda tearDown ()
- Dacă ați alocat resurse externe într-un test, ar trebui să vă amintiți să eliberați și resursele. Metoda teardown () ar putea fi adăugată pentru curățarea obiectelor după finalizarea executării cazului de testare. În mod similar cu metoda setUp (), adăugați o metodă demolarea publică a nulității () sub @După adnotare. Cadrul JUnit se asigură că după executarea fiecărui caz de testare, metoda de sub @After este cu siguranță executată. Obiectele utilizate în test trebuie să fie setate NULL în metoda teardown (), astfel încât gunoiul din teste să fie colectat.
- Un alt candidat bun pentru curățarea obiectelor este uciderea unui browser în acțiune după finalizarea cazului de testare și eliberarea memoriei prin distrugerea obiectelor folosite.
- Numele metodelor setUp () și tearDown () sunt doar un nume definit de utilizator. Puteți seta orice nume de metodă doriți. Doar adnotările folosite cu metoda sunt cele care decid succesiunea testelor.
Exemple de dispozitive de testare JUnit
În această secțiune, vom trece prin două exemple ale testului JUnit 4 și vom încerca să înțelegem cum să folosim abordarea Test Fixtures în codul nostru împreună cu succesiunea diferitelor adnotări ale ciclului de viață @Before, @After, @BeforeClass, @AfterClass, și @Test.
Desigur, va exista un tutorial separat despre adnotări care va clarifica ce sunt acestea și cum funcționează fiecare dintre adnotări. De acum, să rămânem la înțelegerea utilizării dispozitivului de testare în cod.
Testul JUnit 4 - Exemplul 1
În acest exemplu, vom avea echipamentele de testare din clasă cu trei cazuri de testare. Metoda setUp () cu @Before adnotare și metoda tearDown () cu @After adnotare.
Cod:
package demo.tests; import static org.junit.Assert.*; import org.junit.After; import org.junit.Before; import org.junit.Test; public class JUnitProgram { @Before public void setUp() { System.out.println('_______________________________________________________
'); System.out.println('This is the setUp() method that runs before each testcase'); } @Test public void test_JUnit1() { System.out.println('This is the testcase test_JUnit1() in this class'); } @Test public void test_JUnit2() { System.out.println('This is the testcase test_JUnit2() in this class'); } @Test public void test_JUnit3() { System.out.println('This is the testcase test_JUnit3() in this class'); } @After public void tearDown() { System.out.println('This is the tearDown() method that runs after each testcase'); System.out.println('_______________________________________________________
'); } }
Fereastra de consolă rezultată va fi după cum se arată mai jos:
Fereastra consolei face evident faptul că, înainte de fiecare testare, se execută metoda setUp () și, după finalizarea fiecărui test, se execută metoda tearDown ().
Astfel, secvența de execuție per adnotare pentru fiecare metodă de testare este:
- @Inainte de
- @Test
- @După
Amintiți-vă că testele, deși aici, s-au executat în ordine secvențială, adică test_JUnit1 (), test_JUnit2 (), test_JUnit3 (), nu există o secvență definită la test, prin urmare acestea se pot executa în orice ordine. Fiecare test este izolat de celălalt test.
Testul JUnit 4 - Exemplul 2
Aici, să vedem rapid cum putem avea o metodă care rulează o dată pentru prima dată într-o clasă și o altă metodă care rulează o dată după ce toate testele sunt executate pentru clasă.
Cod:
package demo.tests; import static org.junit.Assert.*; import org.junit.After; import org.junit.Before; import org.junit.Test; public class JUnitProgram { @BeforeClass public static void preClass() { System.out.println('This is the preClass() method that runs one time before the class'); } @Before public void setUp() { System.out.println('_______________________________________________________
'); System.out.println('This is the setUp() method that runs before each testcase'); } @Test public void test_JUnit1() { System.out.println('This is the testcase test_JUnit1() in this class'); } @Test public void test_JUnit2() { System.out.println('This is the testcase test_JUnit2() in this class'); } @Test public void test_JUnit3() { System.out.println('This is the testcase test_JUnit3() in this class'); } @After public void tearDown() { System.out.println('This is the tearDown() method that runs after each testcase'); System.out.println('_______________________________________________________
'); } @AfterClass public static void postClass() { System.out.println('This is the postClass() method that runs one time after the class'); } }
Am adăugat metoda preClass () în adnotarea @BeforeClass. Această metodă rulează o singură dată pentru o clasă înainte de executarea testului. Se execută chiar înainte de executarea metodei de sub @Before.
Metoda postClass () în adnotarea @AfterClass rulează o dată la final, când toate testele, inclusiv testul sub @After, sunt executate și finalizate.
Secvența testului este după cum urmează:
- @Înainte de curs
- @Inainte de
- @Test
- @După
- @După clasa
Metodele din @BeforeClass și @AfterClass sunt de obicei partajate de clasă, motiv pentru care dacă metodele nu sunt declarate ca static apoi dă o eroare de inițializare la executarea testului.
instrumente gratuite de optimizare a computerelor Windows 10
Vedeți captura de ecran de mai jos, unde nu am setat metoda preClass () în adnotarea @BeforeClass ca static și astfel testul a fost eronat la executare.
Este posibil să vedeți rezultatul afișând Eroare de inițializare care ar putea fi eliminată la marcarea metodei ca fiind statică. Același lucru este valabil și pentru metoda postClass () din adnotarea @AfterClass.
Concluzie
Am încercat să stabilim un context privind bunele practici de programare care trebuie urmate prin implementarea Dispozitiv de testare abordare și o înțelegere de bază a utilizării și secvenței de execuție pentru adnotările ciclului de viață.
În următorul nostru tutorial, aflăm despre diferite moduri de executare a testelor JUnit în Eclipse. Așadar, țineți-vă la curent cu seria pe măsură ce progresăm cu aspecte mai interesante ale JUnit.
=> Verificați aici pentru a vedea A-Z a tutorialelor de instruire JUnit aici.
Lectură recomandată
- Teste JUnit: Cum se scriu cazuri de testare JUnit cu exemple
- JUnit Tutorial pentru începători - Ce este testarea JUnit
- Tutorial Python DateTime cu exemple
- Șirul Java conține () Tutorial metodă cu exemple
- C # Utilizarea instrucțiunii și C # Tutorial metodă virtuală cu exemple
- Introducere în JUnit Framework și utilizarea sa în Selenium Script - Selenium Tutorial # 11
- Tutorial Selenium Find Element By Text cu exemple
- Tutorial Java Array Length cu exemple de cod