2011年9月20日火曜日

AndroidLibraryプロジェクトの作成とテスト(2)

 ちょっと間があいてしまいましたが前回の続きです。


 今回は実際にテストを作って実行する部分について紹介したいと思います。ではまずはテスト対象となるクラスをライブラリプロジェクトに作成したいと思います。



 ライブラリプロジェクトのパッケージ直下にクラスを作成するためにコンテキストメニューから「新規」-「クラス」を選択し以下の新規Javaクラスダイアログを表示します。


 クラス名はプロジェクトと同じ「AndroidLibrary」としました。他は今回なにも変更をしていません。



 作成されたクラスファイルにとりあえずコンストラクタメソッドのみ作成して続いてテストクラスを作成します。私はQuickJUnitを利用しているのでAndroidLibraryクラスに対するテストクラスが未作成状態ではCtrl+9で以下のようなダイアログが開きます。既にテストクラスが作成されている場合にはテストクラスがパースペクティブに表示されテスト対象クラスとテストクラスをショートカットで行き来することが出来ます。


 ここで「はい」と答えると新規JUnitテスト・ケースダイアログが表示されますのでテストクラスを生成させましょう。



 ソース・フォルダーがLibraryプロジェクトのsrcフォルダがデフォルトで指定されているのでLibraryテストプロジェクトのsrcフォルダに変更しておきます。またスーパークラスをAndroidTestCaseに変更してあります。



 作成したAndroidLibraryTestクラス内にとりあえず簡単なテストを作成しました。AndroidLibraryクラスのインスタンスを生成してそのインスタンスがAndroidLibraryクラスのものであるか確認しているだけです。コンストラクタメソッドは既に作成してあるのでテストファーストじゃありませんが今回は気にしません。



 また「新規作成」-「その他」から「Java」-「JUnit」-「Junitテスト・スイート」からAllTestsクラスを作成して配下のテストクラスを収集するよう実装しました。


 ここで一点注意が必要です。プロジェクトを作成したときに自動ビルドの設定になっている場合空プロジェクトがビルドされて既にapkファイルが作成されています。この状態でテストを実行するとエミュレータにLibraryプロジェクトのパッケージがインストールされてしまいテストが上手く実行出来なくなってしまいます。Libraryプロジェクトフォルダ内のbinフォルダは以下のようになっていることと思います。


 これら3つのファイルは必要ありませんのでテスト実行前に必ず削除しておくようにしてください。そうしないとエミュレータ起動ごとにAndroidライブラリパッケージがエミュレータにインストールされてしまいアンインストールしないとテスト実行が出来なくなってしまいます。もしインストールが実行されてしまった場合は.settingあたりを一度削除する必要があるかもしれませんがそこまでは検証していません。



 さて実際のテストの実行ですが「実行構成」を開き通常のAndroidテストと同じように設定を行います。ここは特に詳しい説明は必要ないことでしょう。


 そしてテストを実行するともちろんコンストラクタクラスが作られているのでグリーンです。


 いかがだったでしょうか。注意点はあるもののお手軽にライブラリプロジェクトのテストを行うことが出来ます。ライブラリなのでandroid.jarに依存しないものであれば普通のJavaプロジェクトとして作成したほうがテスト実行速度も速く優位だと思いますがどうしてもandroid.jarに依存してしまう場合にはこの手法でテストが可能となることと思います。


 さてさてこの手法を用いてライブラリを作成しなくちゃ!

0 件のコメント:

コメントを投稿