您可以從 Hyades 測試使用資料儲存區,方法是從測試所產生的 Java 程式碼呼叫資料儲存區 API。
您要使用的資料儲存區必須已經存在。
您要使用資料儲存區之測試的 Java 程式碼,必須已經存在。 如果要產生程式碼,請用滑鼠右鍵按一下該測試,選取產生。
下面節錄的這一段是步驟 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