Groovy-단위 테스트

객체 지향 시스템의 기본 단위는 클래스입니다. 따라서 단위 테스트는 클래스 내의 testig로 구성됩니다. 취해진 접근 방식은 테스트중인 클래스의 개체를 만들고이를 사용하여 선택한 메서드가 예상대로 실행되는지 확인하는 것입니다. 모든 방법을 테스트 할 수있는 것은 아닙니다. 모든 것을 테스트하는 것이 항상 실용적인 것은 아니기 때문입니다. 그러나 단위 테스트는 핵심적이고 중요한 방법에 대해 수행되어야합니다.

JUnit은 Java 코드의 자동화 된 단위 테스트를 위해 승인 된 업계 표준 인 오픈 소스 테스트 프레임 워크입니다. 다행히도 JUnit 프레임 워크는 Groovy 클래스 테스트에 쉽게 사용할 수 있습니다. 필요한 것은 표준 Groovy 환경의 일부인 GroovyTestCase 클래스를 확장하는 것입니다. Groovy 테스트 케이스 클래스는 Junit 테스트 케이스를 기반으로합니다.

간단한 Junit 테스트 케이스 작성

응용 프로그램 클래스 파일에 다음 클래스가 정의되어 있다고 가정합니다.

class Example {
   static void main(String[] args) {
      Student mst = new Student();
      mst.name = "Joe";
      mst.ID = 1;
      println(mst.Display())
   } 
} 
 
public class Student {
   String name;
   int ID;
	
   String Display() {
      return name +ID;
   }  
}

위 프로그램의 출력은 다음과 같습니다.

Joe1

이제 Student 클래스에 대한 테스트 케이스를 작성하려고한다고 가정합니다. 일반적인 테스트 케이스는 다음과 같습니다. 다음 코드에 대해 다음 사항에 유의해야합니다.

  • 테스트 케이스 클래스는 GroovyTestCase 클래스를 확장합니다.
  • Display 메서드가 올바른 문자열을 반환하는지 확인하기 위해 assert 문을 사용하고 있습니다.
class StudentTest extends GroovyTestCase {
   void testDisplay() {
      def stud = new Student(name : 'Joe', ID : '1')
      def expected = 'Joe1'
      assertToString(stud.Display(), expected)
   }
}

Groovy 테스트 스위트

일반적으로 단위 테스트 수가 증가하면 모든 테스트 케이스를 하나씩 실행하기가 어려워집니다. 따라서 Groovy는 모든 테스트 케이스를 하나의 논리 단위로 캡슐화 할 수있는 테스트 스위트를 생성하는 기능을 제공합니다. 다음 코드 스 니펫은이를 달성하는 방법을 보여줍니다. 코드에 대해 다음 사항에 유의해야합니다.

  • GroovyTestSuite는 모든 테스트 케이스를 하나로 캡슐화하는 데 사용됩니다.

  • 다음 예에서는 두 개의 테스트 케이스 파일이 있다고 가정합니다. StudentTest 그리고 다른 하나는 EmployeeTest 필요한 모든 테스트가 포함되어 있습니다.

import groovy.util.GroovyTestSuite 
import junit.framework.Test 
import junit.textui.TestRunner 

class AllTests { 
   static Test suite() { 
      def allTests = new GroovyTestSuite() 
      allTests.addTestSuite(StudentTest.class) 
      allTests.addTestSuite(EmployeeTest.class) 
      return allTests 
   } 
} 

TestRunner.run(AllTests.suite())