상식닷컴
로그인
가입하기
2026년 상식닷컴 선정 식당 & 카페 리스트
2025년 2026년 신상 호텔 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요
일주일 식단표 어플
자동 일주일 식단표 어플
안드로이드
아이폰
주식 & 코인 차트의 신
1000만원으로 2000만원 만들기 프로젝트
수정하기 - Robolectric에서 테스트 대상을 어떻게 설정하나요?
닉네임
비밀번호
제목
내용
[이미지 업로드는 권한이 있는 사람만 가능. 하단 카톡으로 연락]
Robolectric에서 테스트 대상을 설정하는 방법은 크게 세 가지 요소로 나눌 수 있습니다: 테스트 클래스에 적용하는 어노테이션, 테스트할 특정 컴포넌트 지정, 그리고 필요한 경우 커스텀 설정을 적용하는 방식입니다. 1. 테스트 클래스에 @RunWith(RobolectricTestRunner.class) 적용하기 Robolectric을 사용하려면 먼저 테스트 클래스 위에 `@RunWith(RobolectricTestRunner.class)` 어노테이션을 붙여야 합니다. 이 어노테이션은 JUnit이 테스트를 실행할 때 Robolectric 환경을 사용하도록 지정합니다. 예를 들어: ```java @RunWith(RobolectricTestRunner.class) public class MyActivityTest { ... } ``` 2. 특정 컴포넌트(액티비티, 서비스 등)를 명시적으로 생성하기 Robolectric은 일반적으로 안드로이드 컴포넌트를 실제 기기 없이 JVM에서 실행할 수 있게 해주는데, 테스트 대상 컴포넌트는 직접 생성하거나 초기화해야 합니다. 예를 들어, 액티비티를 테스트하고자 할 때는 `Robolectric.buildActivity()` 메서드를 사용해 액티비티 인스턴스를 생성합니다: ```java ActivityController<MyActivity> controller = Robolectric.buildActivity(MyActivity.class); MyActivity activity = controller.create().start().resume().get(); ``` 이렇게 하면 액티비티의 생명주기 메서드들이 호출되고, 테스트 대상 액티비티가 준비됩니다. 3. @Config 어노테이션으로 테스트 환경 세부 설정하기 때때로 특정 SDK 버전을 지정하거나, 애플리케이션 클래스 등을 지정하고 싶으면 `@Config` 어노테이션을 추가로 붙일 수 있습니다. 예: ```java @Config(sdk = 28) public class MyActivityTest { ... } ``` 이를 통해 테스트 환경을 좀 더 세밀하게 조정할 수 있습니다. 4. Application 클래스 지정하기 테스트 대상이 커스텀 Application 클래스를 사용하는 경우 `@Config(application = MyApplication.class)`처럼 지정해줘야 정상 작동합니다. 5. 뷰와 기타 컴포넌트 테스트 시, 직접 생성 및 바인딩 액티비티가 아닌 단일 뷰나 프래그먼트를 테스트할 때는 직접 해당 뷰 객체를 생성하거나, 프래그먼트 매니저를 통해 생성한 뒤, 수동으로 생명주기를 실행해야 합니다. --- 요약하자면, Robolectric에서 테스트 대상을 설정하려면: - 먼저 테스트 클래스에 `@RunWith(RobolectricTestRunner.class)`를 적용한다. - 테스트 대상 액티비티, 서비스, 프래그먼트 등의 컴포넌트를 `Robolectric.build*()` 메서드를 사용해 생성 및 초기화한다. - 필요에 따라 `@Config` 어노테이션으로 SDK 버전, Application 클래스 등 테스트 환경을 설정한다. - 이렇게 설정된 컴포넌트에서 메서드를 호출하거나 상태를 검증하며 테스트를 진행한다. 이러한 단계들을 통해 Robolectric이 실제 안드로이드 환경 없이도 JVM 상에서 컴포넌트를 초기화하고 실행, 검증할 수 있도록 테스트 대상을 명확히 정의할 수 있습니다.
이용안내
커뮤니티 이용안내
×
- 게시한 게시글로 발생하는 문제는 게시자에게 책임이 있습니다.
- 게시글이 타인/타업체의 저작권을 침해할 경우 모든 책임은 게시자에게 있습니다. 게시자가 모든 손해를 부담해야 합니다.
- 상식닷컴 운영자는 게시자와 상의하지 않고 게시글을 수정 또는 삭제할 수 있습니다.
- 상식닷컴 운영자는 깨끗한 커뮤니티 공간을 만드는 것이 1순위입니다.
수정하기
취소하기