我正在尝试编写一些针对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();
   }
}

失败的原因如下:
org.junit.ComparisonFailure: expected:<null> but was:<java.security.KeyStoreException: AndroidKeyStore not found>

如果有帮助,我将API级别定位为 23

最佳答案

https://github.com/robolectric/robolectric/issues/1518已经对此进行了讨论。

简而言之:



…我们可能不想鼓励人们随便玩。

看起来这需要成为方法拦截规则...

尝试PowerMockito时也会发生相同的情况。

07-26 04:55