2016-10-15 11 views
0

AssetManagerをパラメータとして使用する静的メソッドをテストするテストケースを作成しようとしています。しかし、AssetManagerクラスの取得には問題があります。すべてのオンラインブログでは、sdkバージョン24で推奨されなくなったクラスを使用するように指示しています。私はMockitoクラスを使って主なアクティビティを模倣しようとしました。使用されることを意図していました)、nullのAssetsManagerを返しました。Android SDKバージョン24 - AssetManagerを取得する際に問題が発生する

ユニットテストで自分のプロジェクトのAssetsManagerを取得するにはどうすればよいですか?

+0

通常、MockitoはAndroidの単体テストに関連付けられています。ユニットテスト(Android Studioの 'test /'ディレクトリ、開発マシンのJVM上でAndroidの外で実行する)、またはインストルメンテーションテスト(Androidデバイスの 'androidTest /'ディレクトリ、Androidデバイスやエミュレータで実行する) ? – CommonsWare

+0

@commonsWare私はユニットテストを書こうとしていましたが、私は応答を感謝します!以下の答えは私のために働いた。私はテストディレクトリから作業しています。 –

答えて

0

AssetManagerを使用したテストは、androidTests(コメントに記載されているとおり)に配置する必要があります。その後、テストがassetsからファイルを開いている。この場合、この

@RunWith(AndroidJUnit4.class) 
public class AssetManagerTests { 
    private Instrumentation mInstrumentation; 

    @Before 
    public void setUp() throws Exception { 
     mInstrumentation = InstrumentationRegistry.getInstrumentation(); 
    } 

    @Test 
    public final void testAssets() throws IOException { 
     final AssetManager assetManager = mInstrumentation.getTargetContext().getAssets(); 
     assetManager.open("someappfile"); 
    } 
} 

ような何かを行うことができますが、あなたがやりたいことができます。 ファイル名がsomeappfileであることに注意してください。テストではテストアセットの代わりにアプリアセットにアクセスしていることを強調しています。

関連する問題