Hyades 테스트에서 데이터풀 액세스

테스트의 생성된 Java 코드에서 데이터풀 API에 대한 호출을 작성하여 Hyades 테스트에서 데이터풀을 사용할 수 있습니다.

사용하려는 데이터풀이 이미 있어야 합니다.

데이터풀을 사용하려는 테스트에 대한 Java 코드가 이미 있어야 합니다. 마우스 오른쪽 단추로 테스트를 누른 후 생성을선택하여 코드를 생성하십시오.

Java 빌드 경로에 다음 jar을 추가하십시오. [ECLIPSE_HOME]은 Eclipse 설치 디렉토리입니다.
  • [ECLIPSE_HOME]/plugins/org.eclipse.hyades.models.common_3.0.0/common_model.jar
  • [ECLIPSE_HOME]/plugins/org.eclipse.hyades.test.datapool_3.0.0/datapool_api.jar
  • [ECLIPSE_HOME]/plugins/org.eclipse.emf.ecore_2.0.0/runtime/ecore.jar
  • [ECLIPSE_HOME]/plugins/org.eclipse.emf.common_2.0.0/runtime/common.jar
테스트의 Java 코드에서 데이터풀을 사용하는 단계는 아래와 같습니다. 단계 바로 다음에 예제가 나옵니다.
  1. Java 편집기로 테스트를 여십시오. 테스트 Perspective에는 테스트의 소스 코드가 표시되지 않습니다. 테스트를 보려면 Java Perspective를 열고 소스 폴더(기본적으로 src/test)를 찾아보십시오.
  2. 테스트 시작 부분에 데이터풀 API 클래스의 가져오기 명령문을 추가하십시오.
  3. 테스트 본문에서 데이터풀 열의 값으로 대체하려는 값이 들어 있는 포스트 클래스를 찾으십시오.
  4. 포스트 클래스의 시작 부분에 데이터풀에 대한 인스턴스 참조를 작성하고 이를 통해 반복 루프를 시작하는 코드를 추가하십시오.
  5. 대체될 값이 들어 있는 행을 찾아 이 값을 참조로 바꾸는 코드를 해당 데이터풀 열에 추가하십시오.
  6. 포스트 클래스의 맨 끝에서 닫기 중괄호 바로 앞에 데이터풀을 통한 반복 루프를 닫으십시오.

2단계를 나타내는 다음 인용문은 생성된 Hyades 테스트의 시작 부분에 나타나는 가져오기 명령문을 보여줍니다. 맨 끝에 굵은체로 된 행은 테스트에 추가해야 하는 데이터풀 가져오기 명령문입니다.

package test;
import java.util.Random;
import junit.extensions.RepeatedTest;
import junit.framework.Test;
import org.eclipse.hyades.test.common.junit.DefaultTestArbiter;
import org.eclipse.hyades.test.common.junit.HyadesTestCase;
import org.eclipse.hyades.test.common.junit.HyadesTestSuite;
import org.eclipse.hyades.test.http.runner.HttpCookieCache;
import org.eclipse.hyades.test.http.runner.HttpExecutor;
import org.eclipse.hyades.test.http.runner.HttpHeader;
import org.eclipse.hyades.test.http.runner.HttpRequest;
import org.eclipse.hyades.test.http.runner.HttpResponse;
import org.eclipse.hyades.test.http.runner.internal.util.HttpTestUtil;
import org.eclipse.hyades.models.common.datapool.impl.Common_DatapoolFactoryImpl;
import org.eclipse.hyades.execution.runtime.datapool.*;

3단계를 나타내는 다음 인용문은 테스터가 www.amazon.com으로 가서 atonement라는 책을 검색하여 생성된 테스트에서 가져온 것입니다.

	public void c8postwww_amazon_com() throws Exception {
		HttpRequest request = new HttpRequest();
		request.setMethod("POST");
		request.setVersion("1.1");
		request.setHost("www.amazon.com");
		request.setPort(80);
		request
				.setAbsolutePath("/exec/obidos/search-handle-form/102-5005957-7048952");
		request
				.setBody("url=index%3Dstripbooks=atonement=10=6");

4와 5단계를 나타내는 다음 인용문에서 굵은체로 된 행은 books 데이터풀의 title 열이 atonement 값을 대체하는 것과 같이 생성된 테스트 코드를 수정하는 방법을 보여줍니다. 두 번째 행의 "pathname of books.datapool" 대신에 books 데이터풀의 완전한 경로 이름을 넣으십시오.

	public void c8postwww_amazon_com() throws Exception {

  IDatapoolFactory dpFactory = new Common_DatapoolFactoryImpl();
     IDatapool datapool = dpFactory.load(new File("pathname of books.datapool"), false); //false - nonshared
     IDatapoolIterator iter = dpFactory.open(datapool, 
                 "org.eclipse.hyades.datapool.DatapoolIteratorSequentialPrivate");
     iter.dpInitialize(datapool, -1);  //-1 - go through all ECs


     while (!iter.dpDone())
     {

		   HttpRequest request = new HttpRequest();
		   request.setMethod("POST");
		   request.setVersion("1.1");
		   request.setHost("www.amazon.com");
		   request.setPort(80);
		   request
			.setAbsolutePath("/exec/obidos/search-handle-form/102-5005957-7048952");
	// request
		//	.setBody("url=index%3Dstripbooks=atonement=10=6");

    //new 
        String title = iter.dpCurrent().getCell("title").getStringValue();
        iter.dpNext();
        String body = "url=index%3Dstripbooks=" +  title + " =10=6";
        request.setBody(body);		
        //end new
        // Lines from test ommitted ...
        }// Close loop through datapool

상위 주제: 테스트에 변수 데이터 제공

(C) Copyright IBM Corporation 2000, 2004. All Rights Reserved.