所以我编写了我的应用程序,我使用KeyStore
来加密/解密数据。
我也为它编写了一个很好的Robolectric测试,但是当我尝试运行测试时,我得到了以下异常:
java.security.KeyStoreException: AndroidKeyStore not found
代码如下:
keyStoreInstance = KeyStore.getInstance("AndroidKeyStore");
对此有何解决方案?
我发现的只有: https://github.com/robolectric/robolectric/issues/1518
答案 0 :(得分:2)
所以,当你通过Robolectric运行时,背后的原因是AndroidKeyStore实现不存在。 Using the Android KeyStore in Robolectric tests
您可以使用以下方法来避免此异常:
isTestRunner(){
return Build.FINGERPRINT.equalsIgnoreCase("robolectric");
}
如果你有一个类让我们说 YourKeystore.class 注入了许多其他类,你仍然可以模拟你的YourKeystore.class,这使你能够测试其他类。 如果您想测试YourKeystore.class本身,我担心这是不可能的(参见上面的链接)。