2011-07-26 10 views
4

私はテストデータを使用する計装テストを行っています。このテストデータをアセットファイルとしてテストプロジェクトに含めました。これはうまく機能します。テストプロジェクトから内部ストレージにアクセスするにはどうすればよいですか?

テストアプリケーションの内部ストレージにテストデータファイルをプッシュして、テストが内部ストレージからテストデータを読み込めるようにするだけで、異なるテストデータでテストを再実行するスピードを上げたい。

ただし、テストアプリから内部ストレージにアクセスできません。私はandroid.test.InstrumentationTestRunnerのサブクラスを使用しており、getContext().getFilesDir()へのすべての呼び出しはnullに戻ります。

テストアプリは内部ストレージにアクセスできませんか?

ご協力いただきまして誠にありがとうございます。あなたがテストをRoboguiceを使用するために起こる場合

+0

の1から 'Context'に' getFilesDirを() 'を呼び出す試してみてください、あなたの'テストケース(例えば、 'AndroidTestCase')。 – CommonsWare

+0

テストケースは 'ActivityInstrumentationTestCase2'インスタンスであり、' Instrumentation'クラスを介して 'Context'を取得することしかできないので、おそらくインストルメンテーションテストランナーと同じ' Context'を与えるでしょう。さらに重要なのは、テストデータに基づいてテストインスタンスを生成するため、すべてのテストがインスタンス化される前にテストデータにアクセスする必要があるということです。 – donV

+0

'ActivityInstrumentationTestCase2'で' getActivity() 'を使って' Activity'オブジェクトを取得し、そこから 'getFilesDir()'を使います。 「さらに重要なのは、テストデータに基づいてテストインスタンスを生成するため、すべてのテストがインスタンス化される前にテストデータにアクセスする必要がある」と述べています。 - あなたのことが間違っているのではないかと思っています。 – CommonsWare

答えて

1

、あなたはこのようなあなたのアプリケーションクラスのコンストラクタを実装していることを確認します

public MyApplication(Instrumentation instrumentation) { 
    this(); 
    attachBaseContext(instrumentation.getTargetContext()); 

    //this does not work: 
    //attachBaseContext(instrumentation.getContext()); 
} 
+0

申し訳ありませんが、Roboguiceを使用していません。 – donV

関連する問題