2016-07-05 8 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 레벨 23을 대상으로하고있어

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

형사님께 감사드립니다. @ marius-bardan. – jackyalcine