2012-06-14 2 views
1

서명 된 Jar 파일에서 클래스를 부분적으로 모의하려고한다. (사실, 대상 클래스는 Eclipse API에있다.)Mockito로 서명 된 Jar 파일의 모의 클래스

모치토로 할 수있는 방법이 있습니까? 나는 몇 가지 해결 방법을 시도했지만 결과는 항상이 같은 것입니다 : 인터넷 검색의 비트가 PowerMock might help me 나에게 보여 주었다

org.mockito.cglib.core.CodeGenerationException: 
    java.lang.reflect.InvocationTargetException-->null 
    ... 
Caused by: java.lang.reflect.InvocationTargetException 
    ... 
Caused by: java.lang.SecurityException: 
    class "org.eclipse.jdt.launching.AbstractJavaLaunchConfigurationDelegate$$ 
      FastClassByMockitoWithCGLIB$$6e308a80"'s 
    signer information does not match signer information of other classes 
    in the same package 
    ... 

,하지만 난 내 프로젝트에 대한 새로운 의존성을 도입하지 않도록하고 싶습니다.

미리 감사드립니다.

답변

2

CGLIB가 서명 된 패키지를 지원하기 위해 조정 된 것 같지만 몇 가지 문제가있을 수 있습니다. 간단한 프로젝트를 만들어 문제를 시연하고 mockito 프로젝트에서 문제를 열 ​​수 있습니까?

OSGI에서 모의 ​​실행 중이십니까?

브리 이스

+0

노력에 대한 Thx, 브라이스. 기본적으로 이클립스 플러그인을 개발 중이며 다음과 같은 작업을 수행한다.'val delegate = spy (new MySimpleLaunchDelegate); doReturn (Array ("a", "b")). (delegate) .getClasspath (config)'. 최소한의 예를 사용하여 문제를 재현하려고합니다. – rlegendi

+0

좋습니다, 감사합니다. 서명 된 항아리에 익숙하지 않습니다. 하지만'AbstractJavaLaunchConfigurationDelegate'의 ProtectionDomain 값과 모의 클래스를 확인할 수 있습니까? 결국이 토론은 Mockito 문제에서 계속 될 수 있습니다. – Brice

+0

여러 방법 (스칼라/Java 코드를 섞어도)을 사용하여 문제를 재현하려고 시도했지만이를 수행 할 수 없었습니다. 그것은 내 편이 구성상의 문제 였음에 틀림 없다. 모든 모키토 버전은 완벽하게 실행되었습니다. 이전에 사용했던 구형 버전 (1.8.5)도 마찬가지였습니다. 거짓 경보로 유감입니다. – rlegendi

관련 문제