글
Robolectric 에서 Activity 테스트하기
개발 이야기
2014. 7. 10. 20:49
Robolectric 에서 일반적인 연산 로직을 테스트 하는 것은 매우 쉽습니다. 일반적인 JUnit 테스트와 동일하기 때문입니다. Robolectric 을 이용하여 테스트 코드를 작성하는 가장 큰 이유는 UI 를 에뮬레이터 없이도 테스트 할 수 있기 때문이다.
UI 를 테스트하기 위해서 가장 기본은 뭐니뭐니해도 Activity 아니겠는가요? 연산 -> 결과 정상 반영을 확인 하기 위해서 Activity 를 올리는 것이 먼저 되어야 합니다.
그래서 오늘은 Activity 를 올리는 테스트를 먼저 해보도록 하겠습니다.
1. MyActivity.class
public class MyActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_my); } }
2. activity_my.xml
Robolectric 에서 Activity 생성하기
3. MyActivityTest.class
@Config(manifest = "src/main/AndroidManifest.xml", emulateSdk = 18) @RunWith(RobolectricGradleTestRunner.class) public class MyActivityTest { private MyActivity myActivity; @Before public void setUp() throws Exception { myActivity = Robolectric.buildActivity(MyActivity.class).create().start().resume().get(); } }
Robolectric.buildActivity(Activity.class) 가 액티비티를 가상으로 만들어주는 메소드입니다.여기에 create, start, resume 은 해당 액티비티의 라이프 사이클을 동작시키는 메소드입니다.
위의 테스트 코드 중에서 중요한 것은 @Config 설정입니다.
manifest 를 설정해주셔야 하고, emulateSdk 값을 설정해줘야 테스트가 정상 수행됩니다.
그리고 다음과 같은 테스트 코드를 동작시켜보도록 하겠습니다.
@Test public void testInit() throws Exception { assertNotNull(myActivity); }
테스트가 통과 하는 것을 확인 하실 수 있습니다.
'개발 이야기' 카테고리의 다른 글
Android-Gradle-Robolectric 테스트용 iml 파일 자동 설정하기 (0) | 2014.07.23 |
---|---|
Robolectric 에서 SupoortFragment 사용하기 (0) | 2014.07.10 |
Robolectric 에서 Activity 테스트하기 (0) | 2014.07.10 |
Android-Gradle-Robolectric 에서 Sqlite DB 테스트 하기 (0) | 2014.06.30 |
Android-Gradle-Robolectric 에서 Jacoco 를 활용하여 Test Coverage 측정하기 (0) | 2014.06.28 |
Android-Gradle AAR 파일 추가하기 (0) | 2014.06.24 |