상식닷컴
로그인
가입하기
2026년 상식닷컴 선정 식당 & 카페 리스트
2025년 2026년 신상 호텔 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요
일주일 식단표 어플
자동 일주일 식단표 어플
안드로이드
아이폰
주식 & 코인 차트의 신
1000만원으로 2000만원 만들기 프로젝트
궁금한 상식 보기
킬로줄을 이용한 실생활 예시는 무엇이 있나요?
'먼저 손 잡는 여자'는 관계에서 어떤 메시지를 전달할까?
30대 남자 솔로가 많은 이유는 지나친 기대 때문인가요?
30대 남자 솔로가 많은 이유는 목표 지향적인 삶 때문인가요?
가족 간의 상속 분쟁을 줄이기 위한 방법은 무엇인가요?
부산의 계절별 매력을 알려 주세요.
부산의 교통 편의를 위한 앱은 어떤 것이 있을까요?
30대 초반 여자 현실에서의 결혼과 경력 사이의 갈등은?
30대 초반 여자 현실에서의 이타심과 개인의 욕구는 어떻게 조화될 수 있나요?
고백멘트를 소설의 한 장면처럼 작성해 볼 수 있을까요?
고백멘트를 하는 동안 공감대를 형성하는 방법은?
고백멘트를 하며 편안한 분위기를 조성하는 팁은?
Previous
Next
수정하기 - Robolectric의 의존성 관리는 어떻게 이루어지나요?
닉네임
비밀번호
제목
내용
[이미지 업로드는 권한이 있는 사람만 가능. 하단 카톡으로 연락]
Robolectric은 안드로이드 유닛 테스트를 위한 프레임워크로, 안드로이드 SDK 없이 JVM 상에서 안드로이드 환경을 흉내내 테스트할 수 있게 해줍니다. 이 과정에서 Robolectric 자체와 안드로이드 프레임워크 API, 그리고 테스트 대상 앱의 의존성들이 적절히 조합되어야 하므로 의존성 관리가 매우 중요합니다. Robolectric의 의존성 관리는 주로 다음과 같이 이루어집니다. 1. Robolectric 자체 라이브러리 의존성 테스트 프로젝트는 build.gradle(또는 build.gradle.kts) 파일에 Robolectric 라이브러리 의존성을 명시합니다. 예를 들어, Maven 중앙 저장소나 JCenter 같은 중앙 저장소에서 Robolectric 아티팩트를 가져오도록 설정합니다. ```groovy testImplementation "org.robolectric:robolectric:<version>" ``` 이를 통해 Robolectric 코어 테스트러너와 모킹 프레임워크, 안드로이드 프레임워크 API의 시뮬레이션 구현체 등이 포함된 라이브러리를 자동으로 가져와 프로젝트에 포함합니다. 2. 안드로이드 SDK 버전 의존성 Robolectric은 특정 안드로이드 SDK 버전을 "shadow" 형태로 흉내 내는 방식을 사용합니다. 사용자는 테스트 시점에 자신의 앱과 맞는 SDK 버전을 지정할 수 있고, Robolectric은 그에 맞는 shadow 안드로이드 API 구현을 로딩합니다. 이때 안드로이드 SDK 관련 자원은 실제 SDK가 아니라 Robolectric JAR 파일 안에 포함된 사전 빌드된 shadow 프레임워크가 제공됩니다. 예를 들어, `@Config(sdk = 28)` 처럼 명시하거나 build.gradle에서 compileSdkVersion과 맞춰 지정해줄 수 있습니다. 3. 의존성 충돌 및 버전 관리 실제 안드로이드 앱이 사용하는 라이브러리(예: androidx, guava, retrofit 등)와 테스트 시 함께 로드되는 Robolectric의 내부 의존성들 간에는 버전 충돌 가능성이 있습니다. 따라서 의존성 트리 분석으로 충돌을 방지하고, 필요에 따라 특정 라이브러리의 버전을 명시하거나 제외(exclude) 처리를 하며 테스트 안정성을 확보합니다. 4. 테스트용 시뮬레이션 리소스 등의 의존성 Robolectric은 자체 내장된 shadow API 외에도, XML 레이아웃 파일, 리소스 등의 처리를 위해 안드로이드 리소스 처리기를 활용하는데, 이 경우 앱 프로젝트의 리소스 경로를 인식하도록 설정해야 합니다. Gradle 플러그인과 Robolectric 간 버전 호환성을 맞춰 빌드, 테스트 시 올바르게 리소스를 참조하도록 관리합니다. 5. 테스팅 프레임워크 연동 Robolectric은 기본적으로 JUnit과 연동해서 사용하며, Mockito, Hamcrest 같은 테스트 보조 라이브러리와 함께 의존성 트리를 구성합니다. Gradle에서 이러한 테스트전용 라이브러리들을 testImplementation이나 androidTestImplementation으로 구분하여 관리합니다. 요약하면, Robolectric 의존성 관리는 Gradle 같은 빌드 도구를 통해 Robolectric 라이브러리를 명시적으로 추가하고, 앱 SDK 버전에 따라 shadow API 버전을 조정하며, 앱과 테스트 관련 라이브러리 간의 버전 충돌을 해결하는 방식으로 이루어집니다. 이를 통해 JVM 환경에서 안드로이드 앱의 테스트가 원활하게 수행될 수 있도록 하며, 빌드 도구가 중앙 저장소에서 필요한 아티팩트를 가져와 통합하는 역할을 합니다.
이용안내
커뮤니티 이용안내
×
- 게시한 게시글로 발생하는 문제는 게시자에게 책임이 있습니다.
- 게시글이 타인/타업체의 저작권을 침해할 경우 모든 책임은 게시자에게 있습니다. 게시자가 모든 손해를 부담해야 합니다.
- 상식닷컴 운영자는 게시자와 상의하지 않고 게시글을 수정 또는 삭제할 수 있습니다.
- 상식닷컴 운영자는 깨끗한 커뮤니티 공간을 만드는 것이 1순위입니다.
수정하기
취소하기