私は Java 用の Google Appengine (GAE/J) を使用しています。その上で、Jersey REST フレームワークを使用します。
今、私はローカル JUnit テストを実行したいと考えています。テスト
- ローカル GAE 開発環境をセットアップします ( http://code.google.com/appengine/docs/java/tools/localunittesting.html )。
- 組み込みの Jetty サーバーを起動し、
- 次に、HTTP 経由でサーバーに要求を送信し、応答を確認します。
残念ながら、Jersey/Jetty の組み合わせは新しいスレッドを生成します。GAE は、1 つのスレッドのみが実行されることを想定しています。最終的には、Jersey リソース内にデータストアがないか、異なるデータストアを持つ複数のデータストアを持つことになります。
回避策として、GAE ローカル環境を一度だけ初期化し、それを静的変数に入れ、GAE リソース内に多くのチェックを追加します (このスレッドには開発環境がありませんか? 静的環境を再利用します)。もちろん、これらのチェックはJUnitテスト内でのみ実行する必要があります..(以前に尋ねました:「コードがJUnitテスト内で実行されているかどうかを確認するにはどうすればよいですか?」-ここにリンクを直接投稿することは許可されていません: -|)