만들기 JUnit 예제가 포함된 테스트 스위트: @RunWith @SuiteClasses
Junit에서 테스트 모음을 사용하면 여러 클래스의 모든 테스트 사례를 한곳에 모아서 함께 실행할 수 있습니다.
제품군 테스트를 실행하려면 아래에 언급된 주석을 사용하여 클래스에 주석을 달아야 합니다.
- @Runwith(Suite.class)
- @SuiteClasses(test1.class,test2.class……) 또는@Suite.SuiteClasses({test1.class, test2.class……})
위의 주석을 사용하면 제품군의 모든 테스트 클래스가 하나씩 실행되기 시작합니다.
테스트 스위트 및 테스트 실행기를 생성하는 단계
단계 1) 간단한 테스트 클래스(예: MyFirstClassTest)를 만들고 @test라는 주석이 달린 메서드를 추가합니다.
단계 2) 추가할 다른 테스트 클래스(예: MySecondClassTest)를 만들고 @test로 주석이 달린 메서드를 만듭니다.
단계 3) testSuite를 생성하려면 먼저 @RunWith(Suite.class) 및 @SuiteClasses(class1.class2…..)로 클래스에 주석을 달아야 합니다.
단계 4) 아래와 같이 테스트 스위트를 실행하기 위한 Test Runner 클래스를 생성합니다.
코드 설명 :
- 코드 라인 8: 우리를 실행할 클래스 테스트의 주요 메소드 선언 JUnit 테스트.
- 코드 라인 9: 테스트 클래스 이름을 매개변수로 받는 JunitCore.runclasses를 사용하여 테스트 케이스를 실행합니다(위의 예에서는 3단계에 표시된 TestSuiteExample.class를 사용하고 있습니다).
- 코드 라인 11: for 루프를 사용하여 결과를 처리하고 실패한 결과를 인쇄합니다.
- 코드 라인 13: 성공적인 결과를 인쇄해 보세요.
출력: 다음은 아래와 같이 실패 추적 없이 성공적인 테스트를 보여주는 출력입니다.
JUnit 테스트 스위트 예
좀 더 복잡한 예를 생각해 보자
JunitTest.java
JunitTest.java는 다음으로 주석이 달린 간단한 클래스입니다. @런위드 그리고 @모음곡 주석. 아래와 같이 제품군의 .classes 수를 매개변수로 나열할 수 있습니다.
package guru99.junit; import org.junit.runner.RunWith; import org.junit.runners.Suite; @RunWith(Suite.class) @Suite.SuiteClasses({ SuiteTest1.class, SuiteTest2.class, }) public class JunitTest { // This class remains empty, it is used only as a holder for the above annotations }
SuiteTest1.java
SuiteTest1.java 은 아래와 같은 메시지를 출력하는 테스트 메소드를 갖는 테스트 클래스입니다. 이 클래스를 위에서 언급한 클래스의 제품군으로 사용하게 됩니다.
package guru99.junit; import static org.junit.Assert.assertEquals; import org.junit.Test; public class SuiteTest1 { public String message = "Saurabh"; JUnitMessage junitMessage = new JUnitMessage(message); @Test(expected = ArithmeticException.class) public void testJUnitMessage() { System.out.println("Junit Message is printing "); junitMessage.printMessage(); } @Test public void testJUnitHiMessage() { message = "Hi!" + message; System.out.println("Junit Hi Message is printing "); assertEquals(message, junitMessage.printHiMessage()); System.out.println("Suite Test 2 is successful " + message); } }
SuiteTest2.java
SuiteTest2.java 다음과 유사한 또 다른 테스트 클래스입니다. SuiteTest1.java 아래와 같이 메시지를 인쇄하는 테스트 방법이 있습니다. 이 클래스를 제품군으로 사용하게 됩니다. JunitTest.java.
package guru99.junit; import org.junit.Assert; import org.junit.Test; public class SuiteTest2 { @Test public void createAndSetName() { String expected = "Y"; String actual = "Y"; Assert.assertEquals(expected, actual); System.out.println("Suite Test 1 is successful " + actual); } }
산출
실행 후 주닛테스트.java에는 다음이 포함된 제품군이 포함되어 있습니다. test1.java 그리고 test2.java, 다음과 같은 출력을 얻게 됩니다.
요약
이 튜토리얼에서는 예제를 통해 테스트 하네스와 테스트 모음의 기본을 자세히 알아보았습니다.
- 테스트 하네스 또는 자동화 지원 사용자가 여러 입력을 사용하여 데이터를 테스트하고 실행을 제어할 수 있도록 하는 소프트웨어 또는 소프트웨어 모음입니다.
- 테스트 하네스는 실제로 테스트 라이브러리를 사용하여 테스트를 실행하고 테스트 보고서를 생성하는 모든 작업을 수행하는 테스트 프레임워크를 활성화합니다.
- Junit에서는 테스트 모음을 사용하여 여러 클래스의 모든 테스트 사례를 한곳에 모아서 함께 실행할 수 있습니다.