JUnit Test를 통한 테스트 수행을 위한 환경 설정
테스트 수행 전에
Anyframe Core를 먼저 설치
해야만 한다.
Web Services에서 제공하는 테스트 코드를 수행시키기 위해서는 Anyframe Core 설치 시 설치 과정에서 Web Services Libraries
필요 여부를 물을 때 반드시 y를 입력해야 한다. Apache CXF는 JDK 5.0만을 지원하므로 Anyframe Core를 통해 Web Service 기능을 구현하려면 JDK 5.0을 설치해야 함에 유의하도록 한다.
각각의 페이지 하단에서 제공되는 각각 서비스들에 대한 테스트 코드인 anyframe-xxx.zip을 다운로드 받아 파일의 압축을 해제하고 아래와 같은 절차에 따라 테스트 수행을 위한 환경을 설정한다.
현재 anyframe-xxx.zip 파일은 이클립스 프로젝트 형태로 구성되어 배포되고 있다.
만약 Subversion에서 anyframe.core.xxx 프로젝트의 소스코드를 내려받아서
Maven을 이용하여 빌드를 수행하고자 한다면,
Maven 2.0.9
이상의 버전을 설치하여 수행하도록 한다. Maven 2.0.4 이하의 버전을 사용하는 경우
테스트케이스 수행 시 에러가 발생할 수 있다.
위 anyframe-xxx.zip 파일은 다음과 같이 구성되어 있다.
여기서는 anyframe-remotingtest-src.zip 파일을 예로 설명하고 있다. 각각의 세부 기능 별 테스트 케이스 코드를 포함하고 있다.
이하 문서에서
[Anyframe Core 설치 폴더]라함은 [anyframe-core-X.X.X-bin.zip 압축 해제 위치]로 간주한다.
[압축 해제 위치]
|
|----------[ anyframe-remotingtest-src] : Remoting 서비스에 대한 테스트 케이스 수행을 위한 소스 코드 및
| 테스트용 서비스 속성 정의 파일을 포함한 Eclipse Project
|
|----------src
|-----main
| |----java
|-----test
|----java
|----resources
|-------rmi
|-------hessian
|-------burlap
|-------httpinvoker
|-------webservices
|---asynch
|---databinding
|---jaxws
|---restful
|---simple
|---springsupport
|...
anyframe-test 프로젝트 구성
다음에서는 anyframe-test 프로젝트 구성 요소 각각에 대해 알아보기로 한다.
anyframe-test 프로젝트는 크게 소스 폴더인 src/main/java와 테스트 소스 폴더인 src/test/java 그리고 테스트용 서비스 속성 정의 파일들을 위한 src/test/resources 폴더로 구성되어 있다.
이때 src/main/java 폴더는 anyframe-test 프로젝트에 따라 제공되는 경우와 제공되지 않는 경우가 존재한다.
환경 설정
다음에서는 anyframe-test 에 포함된 샘플 코드를 실행시키기 위한 환경 설정 방법에 대해서 알아보기로 한다.
Step 1 : Eclipse User Libraries 셋업
개발시 Eclipse 프로젝트 환경 설정의 편의를 위해 Anyframe_LIB 라는 User Library를 설정한다.
설정 순서는 다음과 같다.
Anyframe_LIB
- window>preference 메뉴를 선택한다.
- 좌측 메뉴에서 Java>Build Path>User Libraries를 선택한다.
- New 버튼을 클릭하고, 이름 항목에 'Anyframe_LIB' 라고 입력한다.
- 리스트 항목중 'Anyframe_LIB'를 선택하고 Add JARs 버튼을 클릭한다.
- [Anyframe Web 설치 폴더]/lib 폴더 내의 모든 jar파일들을 선택한다.

- OK 버튼을 클릭한다.
Step 2 : anyframe-test 프로젝트 import
- File> import.. 메뉴를 선택한다.
- Existing Projects into Workspace를 선택 > next 버튼을 클릭한다.
- select root directory에서 다운로드 받은 anyframe-test 프로젝트를 브라우저로 선택한다.

- Finish 버튼을 클릭한다.
Step 3 : Build Path 정의 및 확인
- Eclipse에서 anyframe-test 프로젝트를 선택하고 마우스 오른쪽 버튼을 클릭하여 Properties 창을 오픈한다.
- 좌측 메뉴에서 Java Build Path를 선택하고 오른쪽의 Libraries 탭을 선택한다.
- Add Library>User Library...를 선택한 후, 앞서 정의한 Anyframe_LIB을 선택한다.

- Finish 버튼을 클릭한다.
Step 4 : [선택] DB(Oracle 10g)를 사용한 테스트코드를 실행하기 위한 설정
- C:\WINDOWS\system32\drivers\etc 폴더 하위의 hosts 파일을 에디터를 이용해서 수정할 수 있도록 오픈한다.
- DB(Oracle 10g)를 설치한 서버의 IP 주소와 host name을 다음과 같이 추가 작성한다. server.ip라는 host name으로 반드시 작성해야 한다.
- hosts 파일 수정을 완료한다.
Step 5 : 테스트 코드 설명 및 실행 방법
- Spring Test Case 이용하는 경우
Spring Remoting의 테스트 코드의 경우,
클라이언트 구현을 Spring에서 제공하는 AbstractDependencyInjectionSpringContextTests 클래스를 이용하여 Spring Container 구동을
용이하게 하는 RemotingSpringTestCase를 이용한다.
RemotingSpringTestCase
는 서비스 속성 정의 XML 파일의 위치 정보를 이용하여
Spring 컨테이너를 로드하는 역할을 수행하는 JUnit Test Case 클래스로, 모든 테스트 코드는 제공된 anyframe.core.remoting.RemotingSpringTestCase
를
extends 한다. RemotingSpringTestCase에서 Server(HTTP를 이용하는 경우 Jetty 서버를 이용하고, RMI와 같이 필요 없는 경우 ClassPathXmlApplicationContext를 이용)를 구동시킨 후, getConfigLocations() 메소드에 해당 테스트 코드에서 필요한 클라이언트 속성 정의 XML 파일의 위치 정보를 String Array로 리턴하도록 구성한다.
모든 테스트 케이스 코드는 JUnit Test Framework을 통해 테스트 메소드를 실행하게 되며, 필요시 onSetUp(), onTearDown() 메소드 override를 통해 테스트 시작 또는 종료시 별도 작업을 수행하게 할 수 있다.
- 일반 JUnit Test Case 이용하는 경우
Web Services 테스트 코드의 경우,
클라이언트 구현을 CXF에서 제공하는 JAX-WS Frontend 혹은 Simple Frontend를 활용한 JaxWsClient 클래스와 SimpleClient 클래스를 이용하여 작성한 경우
RemotingTestCase를 이용한다. Web Services 테스트 케이스 구성 시 사용되었다.
RemotingTestCase
는 setUp() 메소드 내에서 어떤 서버를 구동할 것인지 선택하고, 테스트 메소드 내에서
어떤 클라이언트를 이용하여 서비스를 호출하여 테스트할 것인지 결정할 수 있게 한다. JUnit Test Case 클래스로, 모든 테스트 코드는 제공된 anyframe.core.remoting.RemotingTestCase
를
extends 한다. 여기서, RemotingTestCase의 setUp()를 반드시 구현하여 어떠한 서버를 구동시킬 것인지 작성해야 한다.
모든 테스트 케이스 코드는 JUnit Test Framework을 통해 테스트 메소드를 실행하게 되며, 필요시 setUp(), tearDown() 메소드 override를 통해 테스트 시작 또는 종료시 별도 작업을 수행하게 할 수 있다.
- Test Case 실행 방법
Eclipse Project내에서 각각의 Test Case를 실행시키기 위해서는 아래와 같이 실행시킬 TestCase를 선택하고 마우스 오른쪽 버튼 클릭 -> Run As -> JUnit Test 선택한다.
