2011年7月4日月曜日

Google App Engine for Java のデータストアAPIを利用するクラスをテスト駆動開発してみる(その3)

前回は、
doTest()メソッドの中から、
別クラスとして実装する部分をコメントアウトしました。
コメントアウトした部分の行っていたことは、
データストアから条件に沿って取得したエンティティを格納した
java.util.Listオブジェクトを取得することでした。

ここでコンパイルエラーとなった部分は、
entitiesList
です。
ローカル変数entitiesListは宣言された部分が
コメントアウトされたのですから、当然です。

コンパイルエラーを解決するために、
変数entitiesListを宣言します。
コメントアウトの直後、
assertEquals(1,entitiesList.size());
の前に

List entitiesList;


を加えます。

すると、またもやエラーになります。
「変数entitiesListが初期化されていない可能性があります。」
というメッセージです。

変数entitiesListは、データストアから取得したエンティティを格納した
java.util.Listオブジェクトとしたいのですから、
目的の機能を持ったメソッドを宣言します。

List entitiesList = getEntity(propertyValues[i]);


とします。
すると、メソッドgetEntity(String)は未定義なので、
コンパイルエラーになります。


ここまでのコードは、以下の通りです。


@Test
public void doTest(){
//サンプルデータをデータストアから検索する
for (int i = 0;i < propertyValues.length;i++){ /*   Query query = new Query(DATA_KIND);    query.addFilter(propertyName, FilterOperator.EQUAL, propertyValues[i]);    PreparedQuery prepare = ds.prepare(query);    List entitiesList = prepare.asList(FetchOptions.Builder.withDefaults());
*/   List entitiesList = getEntity(propertyValues[i]);
assertEquals(1,entitiesList.size());
Iterator iter = entitiesList.iterator();
while (iter.hasNext()){
Entity entity = iter.next();
assertTrue(propertyValues[i].equals(entity.getProperty(propertyName)));
}
}
}


インストール不要・無料のKaede翻訳ツール:
http://kaedetrans.appspot.com/

0 件のコメント:

コメントを投稿