Овој туторијал објаснува како да ги игнорирате тест-случаите во JUnit со примери. Ќе научите да користите @Ignore во JUnit 4 & засилувач; @Disabled Annotation во JUnit 5:
Во претходниот туторијал, моравме да сфатиме што е API наречена Annotation, што прави и, исто така, видовме основни примери за тоа како да се користат прибелешките на животниот циклус, приоритетите што ги задржете кога ќе се изврши тест случај.
Ајде да се обидеме да ги расветлиме ситуациите кога треба не работи или се не би требало да ги извршува сите тест случаи. Ќе научиме да ги игнорираме тест-случаите во JUnit.
JUnit Игнорирај тест-случаи
Може да има одредени тест-случаи што не се извршуваат бидејќи можеби не се однесуваат на одредени промени на кодот или кодот за тест случаи можеби е сè уште во развој, па затоа избегнуваме да ги извршуваме.
Во такви случаи, можеби ќе треба да извршиме сет на тест случаи со прескокнување на неколку други . Значи, што е тоа што JUnit 4, како и JUnit 5, ни го обезбедуваат за да можеме да извршиме само неколку тест случаи додека игнорираме или оневозможуваме или го нарекуваме „прескокнување“ на неколку од тест-случаите?
За среќа, имаме @Ignore прибелешка за JUnit 4 за да прескокнете тест случај додека @Disabled прибелешка за JUnit 5 за да го сторите истото.
JUnit 4 – @Ignore Annotation
- Anotation JUnit 4 @Ignore може да се примени за метод на тестирање, за да се прескокне неговото извршување. Во овој случај,треба да го користите @Ignore со прибелешката @Test за метод на тестирање што сакате да го прескокнете.
- Прибелешката може да се примени и на тест класата, за да ги прескокнете сите тест случаи под класа. Во овој случај, треба да користите @Ignore на ниво на класа.
На кодот му треба пакетот org.junit.Ignore да се увезе за @Ignore да работи. Ајде да покажеме како да прескокнете метод на тестирање во тестот JUnit 4. Ќе го измениме JUnitProgram.java за да го прескокнеме првиот тест на методот.
Парачот на кодот е:
@Ignore @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"); }
При извршувањето на класата датотека, test_JUnit1() се прескокнува за време на извршувањето. Освен тоа, методот означен со @Ignore и сите други методи на тестирање се извршуваат како што се очекуваше.
Резултантното броење на вртења покажува 3/3 тест случаи и 1 тест случај покажува прескокнати. Бројот на трчање покажа 3/3 затоа што дури и прескокнат тест случај се обиде да се изврши.
Подолу сликата од екранот на прозорецот на конзолата го докажува истото.
@Ignore Annotation With A Reason Parameter
Има варијација на @Ignore annotation. Прибелешката зема еден аргумент со вредност на стрингот што е причина за прескокнување на тестот.
Ајде да ја демонстрираме оваа варијација на @Ignore annotation.
Парачот од кодот е како што следува :
@Ignore("the testcase is under development") @Test public void test_JUnit1() { System.out.println("This is the testcase test_JUnit1() in this class"); }
Прозорецот на конзолата го прикажува истиот резултат каков што беше без причината да биде предадена на прибелешката @Ignore.
Сега, да видиме како сите тестовишто припаѓа на класа може да се оневозможи. Сега ќе ја ажурираме прибелешката @Ignore на ниво на класа за JUnitProgram.java
Парачот од кодот е како што е прикажано подолу:
import org.junit.AfterClass; @Ignore("the testcase is under development") 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("_______________________________________________________\n"); 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"); }
Пост извршување на датотеката со класа, конзолата покажува ништо, и Run count под јазичето JUnit покажува 1 класа прескокната од 1 класа .
Подолу е скриншот од прозорецот на конзолата:
JUnit 5 – @Disabled Annotation
@Disabled annotation во JUnit 5 работи слично како @Ignore annotation во JUnit 4.
- Можете да го оневозможите или прескокнете извршувањето за метод на тестирање или група тестови со примена на прибелешката на ниво на тест.
- Или сите тестови може да се прескокнат со примена на @Disabled прибелешка на ниво на класа наместо да се примени на ниво на метод на тестирање.
Како @Ignore, може да се помине и причина за @Disabled за кој било програмер или деловен аналитичар да знае зошто е прескокнат одреден тест. Параметарот останува опционален исто како и во случајот @Ignore.
( Забелешка: Ќе избегнеме да ја демонстрираме прибелешката @Disabled преку вистински код за да избегнеме повторување како што следи точниот начин што @Ignore го следи во JUnit 4.)
Единствената разлика што ќе ја забележите во случајот @Ignore Vs @Disabled е тоа што кога прибелешката се применува на ниво на класа, пост-извршување на датотеката за класа JUnit,бројот на Run во случај на JUnit 4 , покажува 1/1 класа прескокната.
Оттука, броењето на класата што се прескокнува е обезбедено додека во случај на ЈУ. 5 покажува дека 3/3 тест случаи се прескокнати имајќи предвид дека три тест методи се прескокнати од вкупно три методи на тестирање во класата.
Оттука, на видливоста на бројот на прескокнати тест случаи , JUnit 5 прави малку подобра работа во споредба со JUnit 4.
Заклучок
Во ова упатство научивме кои се ситуациите кога можеби ќе треба да го прескокнеме извршувањето на неколку тест случаи. Научивме и како да прескокнеме одредени тест случаи и во JUnit 4 и во JUnit 5.