2011年7月3日日曜日

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

前回、テストメソッドの中身を別クラスに移す
と書きました。

そのテストメソッドは以下の通りでした。


@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());
   assertEquals(1,entitiesList.size());
   Iterator iter = entitiesList.iterator();
   while (iter.hasNext()){
    Entity entity = iter.next();
    assertTrue(propertyValues[i].equals(entity.getProperty(propertyName)));
   }
  }
 }
まず、別クラスに移す部分をコメントアウトしてしまいましょう。
コメントアウトする部分、つまり別クラスの機能とする部分は、
Queryを生成して、データストアからプロパティの値が該当するエンティティの
リストを取得する部分です。

@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());
*/   assertEquals(1,entitiesList.size());
   Iterator iter = entitiesList.iterator();
   while (iter.hasNext()){
    Entity entity = iter.next();
    assertTrue(propertyValues[i].equals(entity.getProperty(propertyName)));
   }
  }
 }

すると、
assertEquals(1,entitiesList.size());
Iterator iter = entitiesList.iterator();
の行でコンパイルエラーとなります。




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

0 件のコメント:

コメントを投稿