2017-06-30 5 views
0

Androidスタジオで標準のJavaのHashmap<Integer, Integer>の代わりにSparseIntArrayを使用することをお勧めします。SparseIntArrayを含むローカルユニットテストとandroid.util。*

SparseIntArray整数を整数にマップします。通常の整数配列とは異なり、インデックスにはギャップが存在する可能性があります。これは、キーと値のオートボクシングとそのデータ構造が各マッピングの余分なエントリオブジェクトに依存しないため、HashMapを使用してIntegersをIntegersにマップするよりもメモリ効率が向上するように設計されています。

実際に私のコードに合っていると思いますが、このクラスを含むメソッドをLocal Unit Testsに使用することはできません。私はいつもRuntimeExceptionで終了します...

java.lang.RuntimeException: Method put in android.util.SparseIntArray not mocked. See http://g.co/androidstudio/not-mocked for details. 
    at android.util.SparseIntArray.put(SparseIntArray.java) 
    ... 

ローカルテストのためにこのメソッドをインポートする方法はありますか?私はAndroidの機能を使用しているとは思わない。 unitTests.returnDefaultValues = trueは、すべてのコールのデフォルト値のみを返します。 Instrumented Unit Testsを使うことができますが、テストプロセスが遅くなります。

答えて

1

プラットフォーム依存関係でクラスをテストする場合は、Robolectric frameworkを使用する必要があります。http://robolectric.org/

関連する問題