github에서 thecodepath 자습서를 따라 Robolectric을 실행하려고합니다. 그러나 테스트를 실행할 때 eclipse는 org/robolectric/android-all/4.3_r2-robolectric-0/android-all-4.3_r2-robolectric-0.jar
을 다운로드하려고합니다. 이 30+ MB .jar 파일은 정확히 무엇입니까? 튜토리얼의 파일 android.jar
을 대체해야합니까?Robolectric 설치
답변
먼저 질문 드리겠습니다 : Android 테스트 용으로 Robolectric이 필요한 이유는 무엇입니까?
그리고 답은 android.jar
이 클래스 및 유틸리티 메소드 계약에만 제공된다는 것입니다. 당신은이 단지에 대해 코드를 컴파일 및 데스크탑 JVM에서 실행할 수 없다
throw new RuntimeException("Stub!");
: 그건 그냥 한 줄의 코드가 모든 방법이 항아리의 모든 기능과 생성자를 의미한다. 실행하려고하면 안드로이드 클래스를 인스턴스화하거나 안드로이드 유틸리티 메소드를 호출하자 마자 예외가 발생합니다.
Robolectric
이이 문제를 해결하려고합니다. 처음부터 ClassLoader
을 사용자 정의하고 Android 코드를 호출 할 때마다 Robolectric
구현으로 바뀝니다. 데스크톱 JVM에서 코드를 테스트 할 수있었습니다. 하지만 그것은 전체 안드로이드를 다시 구현하기가 매우 어렵습니다. 또한 장비에있는 다른 것과 비교하여 테스트 할 때 상황에 빠질 수 있습니다.
따라서 전략이 Robolectric
버전 2에서 변경되었습니다. 가능한 한 많은 Android 소스 코드를 사용하려고합니다. 처음부터 오픈 소스입니다. 그래서 테스트의 첫 번째 실행 Robolectric
다운로드 및 안드로이드 소스에서 컴파일 된 자신의 android.jar를 캐시합니다. 우리의 테스트 환경 행동이 우리가 장치에서 취한 행동에 가깝도록해야합니다.
blog, google group에 Robolectric
에 대해 더 자세히 읽어 보시기 바랍니다. 뿐만 아니라 슬라이드 쇼 및 YouTube에 대한 많은 프레젠테이션을 찾을 수 있습니다. 자신감이 생기 자마자 Robolectric
프로젝트에 github 프로젝트를 기탁하고 커뮤니티에 감사의 말을 전하고 싶습니다.
첫 번째 실행의 일부로 다운로드 프로세스를 추가하는 것은 문제가되는 선택임을 인정해야합니다. 처음 실행하면 사용자가 오프라인 상태가 될 수 있어야합니다. 인터넷 연결 상태가 좋지 않은 곳에 앉아서이 JAR 파일을 다운로드하는 데 1 시간 정도 기다려야합니다. 나는 이미 android.jar를 로컬에 가지고 있으며 과거에는 충분했다. 한계를 이해하고 있으므로이 문제를 피하기 위해 파일을 미리 다운로드해야합니다. –
Robolectric을 처음 설정할 때도 동일한 문제가있었습니다. 내 문제의 이유는 내 프로젝트 src 파일이 패키지에 들어 있었다 :
com.example
그러나 내 테스트 파일은 패키지 안에 들어 있지 않습니다. 테스트 파일을 다음 위치로 옮겼습니다 :
com.example
문제가 해결되었습니다. 이것이 도움이되기를 바랍니다.
고맙습니다. 그것은 바로이 문제입니다. –
이것은 여전히 내 문제를 해결하지 못합니다! 그것은 항아리를 다운로드하고 실패하는 것을 아직도 시도하고있다. 내가 놓친 게 있니? –
여기에서 동일합니다. 테스트 파일을 이동해도 문제가 해결되지 않았습니다. 어떤 제안? –
- 1. Robolectric ShadowPath
- 2. Robolectric KeyStoreKeyGenerator
- 3. NullPointerException가 Robolectric
- 4. Robolectric + Maven
- 5. Robolectric 테스트의 연결 작업
- 6. Google API가있는 Robolectric - AnnotationFormatError
- 7. Android Robolectric Recycler보기를 클릭하십시오.
- 8. Robolectric 2.3-SNAPSHOT
- 9. 은 주어진 화면에서 Robolectric
- 10. Robolectric 간단한 테스트
- 11. Robolectric (android) : 테스트 이벤트?
- 12. scalatest + robolectric 사용
- 13. robolectric : Handler.postDelayed가 즉시 실행됩니다.
- 14. Robolectric - URLConnection에서 작동하는 방법
- 15. intellij + gradle + robolectric + espresso
- 16. Robolectric 및 단검 테스트
- 17. 는 Robolectric & Mockito
- 18. Robolectric 및 Mockinto
- 19. Robolectric 및 View.getHeight()
- 20. Robolectric IllegalState 예외
- 21. Robolectric 3.1에서 ShadowViewTreeObserver가 누락되었습니다.
- 22. Robolectric 및 ANT로 테스트
- 23. Robolectric : SherlockActivity를 테스트하는 방법
- 24. Robolectric : findViewById가 null을 반환합니다.
- 25. Robolectric 샘플 오류
- 26. Robolectric 및 SQLite.getVersion
- 27. Robolectric BugSense가있는 NullPointerException
- 28. Robolectric 2 with JNI
- 29. Robolectric 테스트 AndroidManifest 속성
- 30. Robolectric packageinfo 누락 데이터
해결 했습니까? 그렇다면 대답을 선택하십시오. –