Androidプログラミングのテストで、テスト用のAssetsを読み込む方法

今日、Android用のプログラムを書いていて、すぐに分からなかった事項なのでここにメモ。

JUnitでAndroidのUnitTest用のコードを書いていたのだが、普通にgetAssetsすると、本番プロジェクトのassetsフォルダが参照されてしまい、テストプロジェクト側のassetsフォルダが参照されなくて難渋した。

そこで調べて出てきたのが、StackOverflow の以下の記事
http://stackoverflow.com/questions/9898634/how-to-provide-data-files-for-android-unit-tests

日本語にざっくり要約すると、

テスト用の静的データを用意して、テストプロジェクトのassetsフォルダから読み込む方法。

getInstrumentation().getContext().getResources().getAssets().open("hoge.dat");


ちなみに、JUnit側から本番プロジェクトのassetsフォルダ内のファイルを参照したい場合は

getInstrumentation().getTargetContext().getResources().getAssets().open("hoge.dat");

とやればよい。

これでうまくいった。

こんな方法もあるらしいけれど、

InputStream in = this.getClass().getClassLoader().getResourceAsStream("assets/hoge.dat");

これはちょっと意味合いが違ってくるか。
まあ、動けばいいというときのために知っておいて損はない。

ブログ気持玉

クリックして気持ちを伝えよう!

ログインしてクリックすれば、自分のブログへのリンクが付きます。

→ログインへ

なるほど(納得、参考になった、ヘー)
驚いた
面白い
ナイス
ガッツ(がんばれ!)
かわいい

気持玉数 : 0

この記事へのコメント

この記事へのトラックバック