Google App Engine(GAE)でアプリを作成していて、いいなと思うことはローカル環境でのテスト環境を提供してくれていることだ。
先日、記したJDOを使ってオブジェクトの永続化をする場合でも、ちゃんテストユーティリティが用意されている。LocalServiceTestHelperを使えばローカルでユニットテストができる。
public class LocalDatastoreTest { private final LocalServiceTestHelper helper = new LocalServiceTestHelper(new LocalDatastoreServiceTestConfig()); @Before public void setUp() { helper.setUp(); } @After public void tearDown() { helper.tearDown(); } }
マニュアルに書いてある通り。Helperの開始処理と終了処理を行うだけで、ローカル環境でユニットテストができる。なので、データベースとか用意しないでいいのでお手軽
だ。
しかし、このLocalServiceTestHelperを使うとデフォルトのタイムゾーンがUTCに設定される。なので、日付関連のプロパティを持っていたり、ロジックを書いている場合はテストエラーになるので注意が必要である。
@Before public void setUp() { helper.setTimeZone(TimeZone.getTimeZone("Asia/Tokyo")); helper.setUp(); } }
Helperにタイムゾーンの設定をすると日本時間でテストできる。Javaのタイムゾーン設定は初めてだったので、調べてしまった。