2016-07-05 32 views
4

Android Keystoreに対して動作するいくつかのテストケースを作成しようとしています。私は、次のテストケースを書くときしかし、:RobolectricテストでAndroid KeyStoreを使用する

@RunWith(RobolectricGradleTestRunner.class) 
@Config(constants = BuildConfig.class, sdk = 21) 
public class FancyPantsUnitTest { 
    @Test 
    public void buildKey() { 
     keyPairGenerator = KeyPairGenerator.getInstance("RSA", "AndroidKeyStore"); 
     keyPairGenerator.initialize(4096); 
     final KeyPair keyPair = keyPairGenerator.generateKeyPair(); 
    } 
} 

これは、次の例外で失敗します。それは場合に役立ちます私はAPIレベルをターゲットにしています

org.junit.ComparisonFailure: expected:<null> but was:<java.security.KeyStoreException: AndroidKeyStore not found> 

答えて

5

これについてはすでにhttps://github.com/robolectric/robolectric/issues/1518に議論があります。セキュリティプロパティのデフォルト値は、典型的には、特性 ファイルで実装固有の場所から読み出される

:java.security.SecurityのJavaDocから

:要するに

lib/security/java.securityをJavaインストールディレクトリに追加します。

...私たちはおそらく人々に猿を奨励したくありません。これは、メソッドのインターセプトルールが必要になりますように

はPowerMockitoをしようとしたときに同じことが起こる...

を検索します。

+0

その探偵作品@マリアスバダンありがとう。 – jackyalcine

関連する問題