android でテスト用データを用意し利用する

比較的どうでもいい系の情報ですが Web で日本語になってないぽいので、一応書いておきます。

android のテストを記述する際に、テスト用データをどうやって用意すべきか、というのがあるわけですが、単純にテストプロジェクトでも assets ディレクトリに配置すれば転送できます。

が、普通に Activity のコンテキストとかから AssetManager を取得してしまうと、それはテスト対象のプロジェクトの assets 見ちゃうのでダメ。テストの Instrumentation のコンテキストから取得しましょう。

AssetManager assetManager = getInstrumentation().getContext().getAssets(); 

xml を利用する場合には注意。AssetManager::openXmlResourceParser は assets ではないどこかからファイルを読もうとするみたいで assets ディレクトリに配置したものに対しては使えないぽいので注意です(何やってるのか謎です…詳細ご存知の方がいたらコメントとかお願いします)。XmlPullParser 欲しいときは素直に InputStream から作りましょう。

おしまい。