私のアプリケーションでは、アプリケーションレイヤーに注入する一連のDAOがあります。私が書いている受け入れテストでは、dev_serverデータストアにデータをプリロードしたいので、JUnitテスト(@ContextConfigurationアノテーションを使用)で同じSpring設定を使用して、関連するDAOのインスタンスをテストに挿入します。実際にデータを保存するときなど:GAE devサーバーデータストアへのデータの受け入れテストの事前テスト
dao.add(entity)
「このスレッドにはAPI環境が登録されていません。」という恐れがあります。
Caused by: java.lang.NullPointerException: No API environment is registered for this thread.
at com.google.appengine.api.datastore.DatastoreApiHelper.getCurrentAppId(DatastoreApiHelper.java:108)
at com.google.appengine.api.datastore.DatastoreApiHelper.getCurrentAppIdNamespace(DatastoreApiHelper.java:118)
....
私のテストケースは、(私はここで推測しているが、私は本当に間違っている可能性が)アプリの詳細はGAEアプリケーション-web.xmlに読まれていないためと考えられます。そのため、dev_server上で実行されているアプリケーションが読み取り/書き込みを行っているのと同じデータストアに書き込むことは知られていません。
私のテストをアプリと同じデータストアに "ポイント"させるにはどうすればよいですか?私はアプリとテストの両方に注入できるいくつかの "データソース"メカニズムがありますか?私のテストでデータストアのAPIに必要な設定を読み込ませる方法がありますか?
残念ながら、このアプローチはGAE <1.4.2(1.4.0を使用していました)でのみ動作します。このソリューションを無効にしたバージョン間で、API内の何かが変更されている必要があります。 – kierans