====== TestCase Generator ====== ===== 개요 ===== TestCase Generator는 테스트케이스의 자동 생성을 지원하는 Eclipse IDE 플러그인으로서, 전자정부 표준 프레임워크의 아키텍처 Tier별 테스트케이스 템플릿 생성과 각종 상황별 테스트케이스에 대한 코드블럭의 예시를 제공한다. ===== 설명 ===== TestCase Generator는 트리 뷰(Tree View)형태의 플러그인으로, TestCase Templates 플러그인과 한 세트로 구성되어 동작한다.\\ TestCase Templates 플러그인은 개별 프로젝트에서 독자적으로 구성하여 배포할 수 있도록 파일 시스템 형태로 제공된다.\\ TestCase Generator 플러그인의 구성은 다음과 같다. * TestCase Generator View: TestCase Templates 플러그인의 템플릿 파일들을 읽은 후, 이를 기반으로 템플릿 생성 기능과 코드블럭 조회 기능을 제공한다. 플러그인 단독으로 실행될 수 있으나, TestCase Templates 플러그인의 템플릿 파일의 콘텐트에 따른 트리 뷰를 제공하므로 \\ * TestCase Templates: TestCase Generator 플러그인을 위한 템플릿 전용 플러그인으로 독립수행할 수 없으며, 반드시 TestCase Generator 플러그인과 함께 동작해야 한다. 프로젝트별 상황에 맞춰 템플릿 파일을 수정하여 배포될 수으며, 업데이트 사이트를 통해 주기적으로 업데이트 된다. {{:egovframework:dev:tst:tcgenerator_concept.png|TestCase Generator 구성}} ===== 환경설정 ===== Eclipse 플러그인 업데이트를 이용하여, TestCase Generator 플러그을 설치한다. - Eclipse 메뉴에서, 'Help' > 'Software Updates...' 선택\\ {{:egovframework:dev:tst:tcgenerator_install_1.png|Software Updates 메뉴}}\\ - Software Updates and Add-ons 팝업 창에서, Available Software 탭 선택 - '**Add Site...**' 버튼을 클릭하여 전자정부 프레임워크 플러그인 업데이트 사이트(http://192.168.100.16:8080/egovframework/update) 추가\\ {{:egovframework:dev:tst:tcgenerator_install_2.png|플러그인 업데이트 사이트 추가}}\\ - 전자정부 프레임워크 플러그인 목록에서 TestCase Generator 플러그인과 TestCase Templates 플러그인을 선택, '**Install...**' 버튼 클릭\\ {{:egovframework:dev:tst:tcgenerator_install_3.png|TestCase Generator와 TestCase Templates 플러그인 선택, 설치}}\\ - 화면 안내에 따라, 설치 후 Eclipse 재기동 설치 후, 추가적인 환경설정 없이 바로 사용할 수 있다. ===== 사용법 ===== ==== TestCase Generator 뷰 열기 ==== Eclipse IDE에서 TestCase Generator 뷰를 열어보고, 기본적인 사용법을 알아본다. * 다음과 같은 과정으로 TestCase Generator 뷰를 열 수 있다. - Eclipse 메뉴에서, 'Window' > 'Show View' > 'Other...' 선택\\ {{:egovframework:dev:tst:tcgenerator_openview.png|뷰 열기 메뉴}} - Show View 창에서, eGovFramework 카테고리의 아래에서 **TestCase Generator**를 선택\\ {{:egovframework:dev:tst:tcgenerator_showviewwindow.png|뷰 선택 창}}\\ * TestCase Generator 뷰는 뷰 상단의 뷰 툴바 메뉴와 중앙의 템플릿 목록으로 구성된다.\\ {{:egovframework:dev:tst:tcgenerator_view.PNG|뷰 구성}}\\ * 뷰 상단의 메뉴는 중앙의 템플릿 목록에 대한 {{:egovframework:dev:tst:refresh.gif|'목록 다시 읽기' 아이콘}}'**목록 다시 읽기**'와 {{:egovframework:dev:tst:expandall.gif|'목록 펼치기' 아이콘}}'**목록 펼치기**' 기능을 제공한다. * **목록 다시 읽기/Refresh List**: 테스트케이스 템플릿 목록을 로컬 파일 시스템의 TestCase Templates 플러그인으로부터 다시 읽어 들인다.\\ TestCase Templates 플러그인이 업데이트 되었을 때나 로컬 파일 시스템의 테스트케이스 템플릿을 직접 열어 수정하였을 경우, 이에 대한 즉시 반영을 위해 사용한다. * **목록 펼치기/Expand All**: 테스트케이스 템플릿 목록을 모두 펼친다. * 템플릿 목록의 각 항목을 마우스로 더블 클릭하여 해당 항목에 맞는 기능을 실행시키거나, 오른쪽 버튼 클릭으로 컨텍스트 메뉴를 띄운 후 원하는 기능을 실행시킬 수 있다.\\ {{:egovframework:dev:tst:tcgenerator_viewcontextmenu.png|컨텍스트 메뉴 띄우기}} ==== 코드블럭 조회/사용하기 ==== 템플릿 목록에서 {{:egovframework:dev:tst:codeblockitem.gif|'코드블럭 조회' 아이콘}} 모양의 아이콘으로 표시된 항목들이 코드블럭으로 조회할 수 있는 것들이며, 해당 항목을 더블 클릭하거나, 오른쪽 버튼 클릭하면 나타나는 컨텍스트 메뉴에서 '**Open Wizard**'를 선택하여 코드블럭 조회 창을 띄울 수 있다. 코드블럭 조회 창은 다음과 같은 항목으로 구성된다.\\ {{:egovframework:dev:tst:tcgenerator_codeblock_1.png|코드블럭 조회 창 구성}}\\ 창의 상단에 선택한 테스트케이스 템플릿 항목에 대한 간단한 설명이 출력되며, 해당 테스트케이스 템플릿에 포함된 코드블럭의 목록을 콤보박스 형태로 조회할 수 있다. 콤보박스에서 코드블럭 목록을 변경 선택하면, 중앙의 텍스트 상자에 선택한 항목의 코드블럭이 표시된다.\\ {{:egovframework:dev:tst:tcgenerator_codeblock_2.png|코드블럭 목록 조회}}\\ '**Copy to Clip**' 버튼을 클릭하여 조회한 코드블럭을 클립보드에 복사하고, 원하는 파일을 Eclipse IDE Editor나 외부 편집기 등으로 열어 적당한 위치에 **Ctrl+v** 로 붙여넣는다. ==== 테스트케이스 템플릿 생성하기 ==== 템플릿 목록에서 {{:egovframework:dev:tst:wizard.gif|'테스트케이스 템플릿 생성' 아이콘}} 모양의 아이콘으로 표시된 항목들이 테스트케이스 템플릿을 생성할 수 있는 것들이며, 코드블럭 조회와 동일한 방식으로 해당 항목을 더블 클릭하거나 오른쪽 버튼 클릭하면 나타나는 컨텍스트 메뉴에서 '**Open Wizard**'를 선택하여 테스트케이스 템플릿 생성 마법사를 띄울 수 있다.\\ 테스트케이스 템플릿 생성으로 제공되는 템플릿의 종류는 전자정부 표준 프레임워크의 코어인, Spring 프레임워크의 MVC((Model-View-Controller: 소프트웨어 공학에서 사용되는 아키텍처 디자인 패턴 중의 하나로, 사용자 인터페이스와 비즈니스 로직의 효과적인 분리 목적으로 많이 사용함)) 각 티어 별로 하나씩의 유형이 제공되며 그 목록은 다음과 같다. * **Service 인터페이스**에 대한 테스트케이스 템플릿 * Service 인터페이스를 구현한 **ServiceImpl 클래스**에 대한 테스트케이스 템플릿 * **DAO((Data Access Object: 데이터베이스에 대한 추상화된 인터페이스를 제공하는 객체)) 클래스**에 대한 테스트케이스 템플릿 각 유형별 테스트케이스 템플릿 생성 방법은 다음과 같다. ---- === Service 인터페이스 테스트케이스 템플릿 === Service TestCase Generator 마법사는 다음 그림과 같은 항목으로 구성된다.\\ {{egovframework:dev:tst:tcgenerator_genservice.png|Service TestCase Generator 마법사 구성}}\\ 다음과 순서로 대상 서비스의 테스트케이스를 생성할 수 있다. - 대상 Service 선택 * Service TestCase Generator 마법사 창에서, **대상 Service** 항목의 Interface/Class 텍스트박스 오른쪽의 **Browse** 버튼을 클릭하여 Java Element Select 창을 띄운다. * Java Element Select 창의 Select Class 텍스트박스에서 대상 Service의 이름을 타이핑 한다. * 이름을 타이핑 할 때마다 텍스트박스 아래쪽에, 해당하는 Java 클래스와 인터페이스들이 검색되어 조회된다.\\ {{:egovframework:dev:tst:tcgenerator_genservice_1.png|Java 클래스/인터페이스 조회}} * 목록에서 원하는 Service의 인터페이스를 선택한 후, **OK** 버튼을 클릭하여 대상 Service 선택을 종료한다.\\ {{:egovframework:dev:tst:tcgenerator_genservice_2.png|대상 Service 선택}} - 생성할 테스트케이스 템플릿의 패키지 선택 * Service TestCase Generator 마법사 창에서, **생성할 TestCase** 항목의 Package 텍스트박스 오른쪽의 **Browse** 버튼을 클릭하여 Project Selection 창을 띄운다. * Project Selection 창에서, 테스트케이스 템플릿을 생성할 프로젝트를 선택하고, **OK** 버튼을 클릭한다. * 선택한 프로젝트에 대한 Source folder Selection 창에서, 테스트케이스 템플릿을 생성할 디렉터리 위치를 선택하고, **OK** 버튼을 클릭한다.\\ {{:egovframework:dev:tst:tcgenerator_genservice_3.png|대상 프로젝트/소스 디렉터리/패키지 선택}} * 선택한 디렉터리에 대한 Package Selection 창에서, 테스트케이스 템플릿을 생성할 패키지를 지정하고, **OK** 버튼을 클릭하여 Package 선택을 종료한다.\\ {{:egovframework:dev:tst:tcgenerator_genservice_4.png|생성할 테스트케이스 템플릿 패키지 선택}} - 생성할 테스트케이스 템플릿의 데이터소스 이름 설정 (선택 사항) * 테스트케이스에서 데이터소스를 사용할 경우에 해당 데이터소스의 이름을 **생성할 TestCase** 항목의 DataSource Resource Name 텍스트박스에 입력한다. 필수 항목(1번, 2번 절차)을 모두 설정하게 되면 Finish 버튼이 활성화되며, **Finish** 버튼을 클릭하여 Service에 대한 테스트케이스를 생성한다. ---- === ServiceImpl 클래스 테스트케이스 템플릿 === ServiceImpl TestCase Generator 마법사는 다음과 같은 항목으로 구성된다.\\ {{egovframework:dev:tst:tcgenerator_genserviceimpl.png|ServiceImpl TestCase Generator 마법사 구성}}\\ 다음과 순서로 대상 서비스의 구현 클래스(ServiceImpl 클래스)에 대한 테스트케이스를 생성할 수 있다. - 대상 ServiceImpl 클래스 선택 * ServiceImpl TestCase Generator 마법사 창에서, **대상 ServiceImpl** 항목의 Class 텍스트박스 오른쪽의 **Browse** 버튼을 클릭하여 Java Element Select 창을 띄운다. * Java Element Select 창의 Select Class 텍스트박스에서 대상 ServiceImpl 클래스의 이름을 타이핑 한다. * 이름을 타이핑 할 때마다 텍스트박스 아래쪽에, 해당하는 Java 클래스와 인터페이스들이 검색되어 조회된다. * 목록에서 원하는 ServiceImpl 클래스를 선택한 후, **OK** 버튼을 클릭하여 대상 ServiceImpl 클래스 선택을 종료한다.\\ {{:egovframework:dev:tst:tcgenerator_genserviceimpl_1.png|대상 ServiceImpl 선택}} - 생성할 테스트케이스 템플릿의 패키지 선택 * ServiceImpl TestCase Generator 마법사 창에서, **생성할 TestCase** 항목의 Package 텍스트박스 오른쪽의 **Browse** 버튼을 클릭하여 Project Selection 창을 띄운다. * Project Selection 창에서, 테스트케이스 템플릿을 생성할 프로젝트를 선택하고, **OK** 버튼을 클릭한다. * 선택한 프로젝트에 대한 Source folder Selection 창에서, 테스트케이스 템플릿을 생성할 디렉터리 위치를 선택하고, **OK** 버튼을 클릭한다. * 선택한 디렉터리에 대한 Package Selection 창에서, 테스트케이스 템플릿을 생성할 패키지를 지정하고, **OK** 버튼을 클릭하여 Package 선택을 종료한다.\\ {{:egovframework:dev:tst:tcgenerator_genserviceimpl_2.png|생성할 테스트케이스 템플릿 패키지 선택}} 필수 항목(1번, 2번 절차)을 모두 설정하게 되면 Finish 버튼이 활성화되며, **Finish** 버튼을 클릭하여 ServiceImpl에 대한 테스트케이스를 생성한다. ---- === DAO 클래스 테스트케이스 템플릿 === DAO TestCase Generator 마법사는 다음과 같은 항목으로 구성된다.\\ {{egovframework:dev:tst:tcgenerator_gendao.png|DAO TestCase Generator 마법사 구성}}\\ 다음과 순서로 대상 DAO에 대한 테스트케이스를 생성할 수 있다. - 대상 DAO 선택 * DAO TestCase Generator 마법사 창에서, **대상 DAO** 항목의 Class 텍스트박스의 **Browse** 버튼을 클릭하여 Java Element Select 창을 띄운다. * Java Element Select 창의 Select Class 텍스트박스에서 대상 DAO의 이름을 타이핑 한다. * 이름을 타이핑 할 때마다 텍스트박스 아래쪽에, 해당하는 Java 클래스와 인터페이스들이 검색되어 조회된다. * 목록에서 원하는 DAO 클래스를 선택한 후, **OK** 버튼을 클릭하여 대상 DAO 선택을 종료한다.\\ {{:egovframework:dev:tst:tcgenerator_gendao_1.png|대상 DAO 선택}} - 생성할 테스트케이스 템플릿의 패키지 선택 * DAO TestCase Generator 마법사 창에서, **생성할 TestCase** 항목의 Package 텍스트박스 오른쪽의 **Browse** 버튼을 클릭하여 Project Selection 창을 띄운다. * Project Selection 창에서, 테스트케이스 템플릿을 생성할 프로젝트를 선택하고, **OK** 버튼을 클릭한다. * 선택한 프로젝트에 대한 Source folder Selection 창에서, 테스트케이스 템플릿을 생성할 디렉터리 위치를 선택하고, **OK** 버튼을 클릭한다. * 선택한 디렉터리에 대한 Package Selection 창에서, 테스트케이스 템플릿을 생성할 패키지를 지정하고, **OK** 버튼을 클릭하여 Package 선택을 종료한다.\\ {{:egovframework:dev:tst:tcgenerator_gendao_2.png|생성할 테스트케이스 템플릿 패키지 선택}} - 생성할 테스트케이스 템플릿의 데이터소스 이름 설정 (선택 사항) * 테스트케이스에서 데이터소스를 사용할 경우에 해당 데이터소스의 이름을 **생성할 TestCase** 항목의 DataSource Resource Name 텍스트박스에 입력한다. 필수 항목(1번, 2번 절차)을 모두 설정하게 되면 Finish 버튼이 활성화되며, **Finish** 버튼을 클릭하여 DAO에 대한 테스트케이스를 생성한다. ---- ===== 샘플 ===== ===== 참고자료 ===== [[egovframework:dev:tst:test_case|JUnit Test Case의 작성과 실행]]