Създайте JUnit Test Suite с пример: @RunWith @SuiteClasses

Съдържание:

Anonim

В Junit тестовият пакет ни позволява да обединим всички тестови случаи от множество класове на едно място и да го стартираме заедно.

За да стартирате теста на пакета, трябва да анотирате клас, като използвате споменатите по-долу анотации:

  1. @Runwith (Suite.class)
  2. @SuiteClasses (test1.class, test2.class…) или

    @ Suite.SuiteClasses ({test1.class, test2.class

    ...})

С горните анотации всички тестови класове в пакета ще започнат да се изпълняват един по един.

Стъпки за създаване на Test Suite и Test Runner

Стъпка 1) Създайте прост тестов клас (напр. MyFirstClassTest) и добавете метод, отбелязан с @test.

Стъпка 2) Създайте друг тестов клас, който да добавите (напр. MySecondClassTest) и създайте метод, отбелязан с @test.

Стъпка 3) За да създадете testSuite, първо трябва да анотирате класа с @RunWith (Suite.class) и @SuiteClasses (class1.class2

...).

Стъпка 4) Създайте клас Test Runner, за да стартирате нашия тестов пакет, както е дадено по-долу;

Обяснение на кода:

  • Кодова линия 8: Деклариране на основния метод на теста на класа, който ще стартира нашия тест JUnit.
  • Кодов ред 9: Изпълнение на тестови случаи с помощта на JunitCore.runclasses, което приема името на тестовия клас като параметър (в горния пример използвате TestSuiteExample.class, показан в стъпка 3)
  • Кодов ред 11: Обработка на резултата с помощта на цикъл и отпечатване на неуспешен резултат.
  • Код ред 13: Разпечатване на успешния резултат.

Резултат: Ето изхода, който показва успешен тест без следа от грешки, както е дадено по-долу:

Пример за JUnit Test Suite

Помислете за по-сложен пример

JunitTest.java

JunitTest.java е прост клас, анотиран с @RunWith и @Suite анотации. Можете да посочите броя .classes в пакета като параметри, както е дадено по-долу:

пакет guru99.junit;внос org.junit.runner.RunWith;внос org.junit.runners.Suite;@RunWith (Suite.class)@ Suite.SuiteClasses ({SuiteTest1.class,SuiteTest2.class,})публичен клас JunitTest {// Този клас остава празен, той се използва само като държач за горните пояснения}

SuiteTest1.java

SuiteTest1.java е тестов клас с тестов метод за разпечатване на съобщение, както е дадено по-долу. Ще използвате този клас като пакет в гореспоменатия клас.

пакет guru99.junit;импортиране на статични org.junit.Assert.assertEquals;внос org.junit.Test;публичен клас SuiteTest1 {съобщение на публичен низ = "Saurabh";JUnitMessage junitMessage = ново JUnitMessage (съобщение);@Test (очаква се = ArithmeticException.class)public void testJUnitMessage () {System.out.println („Junit Message се отпечатва“);junitMessage.printMessage ();}@Тестpublic void testJUnitHiMessage () {message = "Здравей!" + съобщение;System.out.println ("Junit Hi Message се отпечатва");assertEquals (message, junitMessage.printHiMessage ());System.out.println („Тестът на Suite 2 е успешен“ + съобщение);}}

SuiteTest2.java

SuiteTest2.java е друг тестов клас, подобен на SuiteTest1.java, който има тестов метод за разпечатване на съобщение, както е дадено по-долу. Ще използвате този клас като пакет в JunitTest.java .

пакет guru99.junit;внос org.junit.Assert;внос org.junit.Test;публичен клас SuiteTest2 {@Тестpublic void createAndSetName () {Очаква се низ = "Y";String действителен = "Y";Assert.assertEquals (очаквано, действително);System.out.println („Тестът на Suite 1 е успешен“ + действително);}}

Изход

След като изпълните JunitTest .java, който съдържа пакет с test1.java и test2.java , ще получите по-долу изход:

Обобщение

В този урок сте научили подробно основите на тестовите сбруи и тестовите комплекти с пример.

  • Тестване на сбруя или автоматизация Тестването е софтуер или колекция от софтуер, който позволява на потребителя да тества данни с множество входове и да контролира изпълнението
  • Тестовият колан всъщност позволява тестова рамка, която извършва цялата работа по изпълнение на тестове с помощта на тестова библиотека и генериране на тестов отчет
  • В Junit тестовият пакет ни позволява да обединим всички тестови случаи на много класове на едно място и да го стартираме заедно.