0

현재 Mockito 및 모듈 dexmaker-mockito을 사용하는 다양한 AndroidTestCases이 있습니다. 이제 robolectric plugin을 사용하여 Robolectric 개의 테스트 사례를 추가하려고합니다. arguements가없는 메소드를 모의하려고 할 때 IllegalArgumentExceptionDexmaker에서 나올 때를 제외하고는 모두 잘 돌아갑니다. dexmaker-mockito 종속성을 제거하고대신 mockito 버전 1.9.0을 사용하면 오류가 사라지지만 모든 AndroidTestCases가 실패하게됩니다. 어쨌든 gradledexmaker-mockito이 (가) robolectric 테스트 사례에서 제외 되었습니까? 아니면 안드로이드 단위 테스트 및 robolectric 단위 테스트를 모두 실행하는 다른 방법을 아는 사람이 있습니까? 업데이트Android 스튜디오에서 robolectric 및 android unit 테스트를 실행하십시오.

Error: java.lang.IllegalArgumentException at com.google.dexmaker.mockito.InvocationHandlerAdapter.invoke

나는 gradle-android-test-pluginrobolectric-gradle-plugin을 시도했지만 1.9.0mockitio의 버전을 변경하고 내 종속에서 dexmaker, dexmaker-mockito을 제거하지 않고 IllegalArguementException 제거 할 수 없습니다.

나는 guide을 시도했으나 robolectric가 그 gradle 작업을 위해 컴파일되지 않았기 때문에 내 빌드를 손상시키는 기본 또는 테스트 소스 세트에 추가하지 않고 Android Studio에서 내 소스 디렉토리를 인식하지 못했습니다. .

이번에는 지침 에 따라 종료되었지만 명령 줄에서 테스트를 실행했지만 이상한 것으로 발견 된 android studio에서 실행하면 오류가 사라졌습니다. 다시 mockitio 버전을 1.9.0으로 변경하고 dexmaker을 제거하면 Android 앱의 내 종속성에서 dexmaker-mockito이 오류를 제거했습니다. 지금은 더 나은 대답을 찾을 때까지 안드로이드 스튜디오에서 단위 테스트를 실행할 수 없다는 이유로 정착 할 것입니다.

+1

여기서 코드는 ??????? –

+0

예를 들어 간단한 코드를 작성하고 게시하려고 시도 할 때 코드가 약간 복잡합니다. – TravisW

+0

솔루션을 찾았습니까? 나는 지금 똑같은 문제가있다. – Christoph

답변

0

dexmaker-mockito가해야 할 일을 올바르게 이해하면 기기에서 실행되는 Android 단위 테스트와 함께 사용하도록되어 있으므로 안드로이드 테스트 사례에 적합합니다.

Robolectric 테스트는 JVM에서 실행되므로 Android 테스트가 아닌 JUnit 테스트로 실행해야합니다. dexmaker-mockito를 사용해서는 안됩니다. 장치에 배포하지 않기 때문에, 테스트 할 범위가 설정된 일반 Mockito 라이브러리 만 사용할 수 있습니다.

두 가지를 섞어서 사용하지 못할 수도 있습니다. 두 가지 로보트 테스트를 Android 단위 테스트와 별도로 유지할 수 있습니다.

+0

유일한 해결책은 별도의 모듈에 테스트 케이스를 두는 것입니다. 이로 인해 Robolectric 플러그인이 실패합니다. – TravisW

+0

다른 솔루션을 시도 할 때 정확히 무엇을 시도하고 어떤 오류가 발생했는지에 대해 설명하는 질문을 업데이트하면 사람들이 쉽게 도움을받을 수 있습니다. –

+0

죄송합니다. 제가 시도한 것을 추가하고 질문을 변경하여 내 문제를보다 정확하게 반영했습니다. – TravisW