從 Hyades 測試存取資料儲存區

您可以從 Hyades 測試使用資料儲存區,方法是從測試所產生的 Java 程式碼呼叫資料儲存區 API。

您要使用的資料儲存區必須已經存在。

您要使用資料儲存區之測試的 Java 程式碼,必須已經存在。 如果要產生程式碼,請用滑鼠右鍵按一下該測試,選取產生

請將這些 JAR 加到 Java 建置路徑中。[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 編輯器開啟該測試。 該測試的程式碼不會出現在測試視景中。 如果要看到測試,請開啟 Java 視景,瀏覽到來源資料夾(預設值是 src/test)。
  2. 在測試一開始的地方,加入資料儲存區 API 類別的 import 陳述式。
  3. 在測試主體找出後置類別,其中含有您要換成資料儲存區直欄值的值。
  4. 在後置類別開始的地方,加入建立資料儲存區之實例參照的程式碼,然後經由它來啟動疊代迴圈。
  5. 找出含有要換掉之值的那一行,然後加入程式碼,把該值換成適當資料儲存區直欄參照的值。
  6. 在後置類別結尾處,就在右大括弧前面,透過資料儲存區關閉您的疊代迴圈。

下面節錄的這一段是步驟 2 的示範,它含有出現在所產生之 Hyades 測試開頭的 import 陳述式。 結尾處以粗體顯示的那幾行,就是您必須加入測試中的資料儲存區 import 陳述式。

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.