what is junit test fixture
Този урок ще обясни кога, защо и как да използвате JUnit Test Fixture с прости примери за JUnit Test Fixture за вашето лесно разбиране на концепцията:
Ще научим -
- Кога и защо имаме нужда да използваме тестово приспособление?
- Какъв е подходът за използването му в нашия код за теста JUnit?
- Няколко примера за разбиране на термина „Тестова арматура“, паралелно каскадирани с преден старт на анотациите за жизнения цикъл на JUnit 4 като @Before, @After, @BeforeClass, @AfterClass и @Test.
=> Проверете ВСИЧКИ уроци за JUnit тук.
Какво ще научите:
Тестово приспособление JUnit
Когато има множество тестови случаи в клас JUnit, може да има общ обект или обекти, използвани от всички тестови случаи. В този случай може да има специфични функции, които могат да бъдат общи за всички тестови случаи.
Това не означава, че тестовите обекти трябва да се споделят от всички тестови случаи. Промяната в обекта, направена в един тест, не трябва да се споделя за всички тестове, тъй като тези тестове са независими и могат да бъдат изпълнени в различен ред според техния приоритет.
Цялостното разбиране на термин „Тестова арматура“ е фиксирано състояние в код или набор от фиксирани стъпки в код, който се използва като предварително условие и няколко други набора стъпки, които се използват като последващо условие за всички тестове.
как да напиша тестови случаи от изисквания
По този начин, с други думи, ние идентифицираме онези набори от изявления, които ще се повтарят за всички тестове и по този начин, опитайте да зададете фиксирана среда за изпълнение на нашите тестови методи.
The предназначение използването на Test Fixture е да се премахне дублирането на общия код за всички тестови случаи.
Нека се опитаме да разберем практическото изпълнение на тестовото устройство в JUnit тест.
как да създам масив от родов тип в java
метод setUp ()
- Има тестове, които се нуждаят от инициализация на определени обекти (низ, цяло число или ArrayList или някакъв обект по този въпрос). Можете да създадете метод public void setUp () в който можете да декларирате променливите на екземпляра за общите обекти. Поставете този метод setUp () под анотацията @Преди . С анотацията @Before рамката ще стартира метода setUp () преди всяко изпълнение на тестовия случай.
- Методът setUp () също може да се използва в случай, че искате да стартирате браузър с конкретен URL адрес като първата стъпка, която стартирате тестов случай, който следва влизане в приложението с предварително определени идентификационни данни.
метод на tearDown ()
- Ако сте разпределили външни ресурси в тест, не забравяйте да освободите и ресурсите. Методът teardown () може да бъде добавен за почистване на обектите след приключване на изпълнението на тестовия случай. По подобен начин като метода setUp (), добавете метод публично премахване на празнотата () под @След анотация. Рамката JUnit гарантира, че след всеки тестов случай се изпълнява методът под @After. Обектите, използвани в теста, трябва да бъдат зададени на NULL в метода teardown (), така че боклукът от тестовете да се събира.
- Друг добър кандидат за почистване на обектите е убиването на браузър в действие след приключване на тестовия случай и освобождаване на паметта чрез унищожаване на използваните обекти.
- Имената на методите setUp () и tearDown () са само дефинирано от потребителя име. Можете да зададете произволно име на метод, което желаете. Само анотациите, използвани с метода, решават последователността на изпълнението на тестовете.
Примери за JUnit тестови приспособления
В този раздел ще разгледаме два примера за теста JUnit 4 и ще се опитаме да разберем как да използваме подхода на тестовите тела в нашия код, заедно с поредицата от различни анотации на жизнения цикъл @Before, @After, @BeforeClass, @AfterClass, и @Test.
Разбира се, ще има отделен урок за анотациите, който ще изясни какво са това и как работи всяка от анотациите. Отсега нека се придържаме към разбирането за използването на Test Fixture в кода.
Тест JUnit 4 - Пример 1
В този пример ще имаме тестовите тела в класа с три тестови случая. Методът setUp () с анотация @Before и метод tearDown () с анотация @After.
Код:
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('_______________________________________________________
'); } }
Резултантният прозорец на конзолата ще бъде както е показано по-долу:
Конзолният прозорец прави очевидно, че преди всяко пробно изпълнение се изпълнява методът setUp () и след завършване на всеки тест се изпълнява методът tearDown ().
По този начин последователността на изпълнение на анотацията за всеки метод на тестване е:
- @Преди
- @Тест
- @След
Не забравяйте, че въпреки че тук тестовете са изпълнени в последователен ред, т.е. test_JUnit1 (), test_JUnit2 (), test_JUnit3 (), няма определена последователност за теста, поради което те могат да се изпълняват във всякакъв ред. Всеки тест е изолиран от другия тест.
Тест JUnit 4 - Пример 2
Тук нека да видим бързо как можем да имаме метод, който се изпълнява еднократно за първи път в клас и друг метод, който се изпълнява еднократно, след като всички тестове са изпълнени за класа.
Код:
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'); } }
Добавихме метода preClass () под анотация @BeforeClass. Този метод се изпълнява само веднъж за клас преди изпълнението на теста. Той работи дори преди методът под @Before да се изпълни.
Методът postClass () под @AfterClass анотация се изпълнява веднъж в края, когато всички тестове, включително теста под @After, са изпълнени и завършени.
Последователността на тестовото пускане е следната:
- @BeforeClass
- @Преди
- @Тест
- @След
- @След часовете
Методите под @BeforeClass и @AfterClass обикновено се споделят от класа, поради което, ако методите не са декларирани като статични след това дава грешка при инициализация при изпълнение на теста.
Вижте екранната снимка по-долу, където не сме задали метода preClass () под анотация @BeforeClass като статични и по този начин тестът е допуснал грешка при изпълнението.
какво е функционално тестване с пример
Може да видите резултата, показващ грешка при инициализация, която може да бъде премахната при маркиране на метода като статичен. Същото важи и за метода postClass () под анотация @AfterClass.
Заключение
Опитахме се да зададем контекст на добрите програмни практики, които да бъдат следвани от прилагането на Тестово приспособление подход и основно разбиране на използването и последователността на изпълнение за анотациите на жизнения цикъл.
В следващия урок научаваме за различни начини за изпълнение на тестове JUnit в Eclipse. Затова продължавайте да се настройвате на поредицата, докато напредваме с по-интересни аспекти на JUnit.
=> Проверете тук, за да видите A-Z на уроците за обучение на JUnit тук.
Препоръчително четене
- JUnit тестове: Как да напиша JUnit тестови случаи с примери
- Урок за JUnit за начинаещи - какво е тестване на JUnit
- Урок за Python DateTime с примери
- Java String съдържа () Урок за метод с примери
- C # Използване на Statement и C # Урок за виртуален метод с примери
- Въведение в JUnit Framework и нейното използване в Selenium Script - Селен Урок # 11
- Намиране на елемент от селен чрез урок с текст с примери
- Урок за дължина на масив Java с примери за кодове