2012-07-27 4 views
8

ActivityInstrumentationTestCase2를 사용하여 로그인 활동에 대해 여러 테스트 사례를 실행하려고합니다. 첫 번째 테스트 케이스는 로그인 성공을 테스트하여 startActivity (Intent intent)를 호출하여 Activity가 다음 Activity를 시작하도록합니다. 이제 내가 테스트하려고하는 활동 위에 또 다른 활동이 있습니다. 첫 번째 테스트 케이스가 통과하고 두 번째 테스트 케이스가 시작됩니다. 그러나 그것은 두 번째 테스트 케이스에 의해 호출 될 때 getActivity()에서 영원히 중단됩니다.ActivityInstrumentationTestCase2로 Android 단위 테스트, 이전 테스트 사례로 인해 다른 Activity가 시작될 때 getActivity()가 중단됩니다.

로그인 액티비티 코드에 들어가서 startActivity (Intent intent)를 호출하는 부분을 주석 처리하면 두 테스트 케이스가 모두 성공적으로 실행됩니다.

저는 이미 몇 가지 시도를했습니다. Activity 스택을 삭제하기 위해 Intent.FLAG_ACTIVITY_CLEAR_TOP을 사용했습니다. 이 경우 최상위 활동이 닫히고 로그인 활동이 표시되지만 두 번째 테스트 케이스가 시작될 때 getActivity()에서 여전히 멈추게됩니다.

또한 Keys (KeyEvent.KEYCODE_BACK)를 보내려고했지만 영향이 없습니다.

이 문제를 해결하려면 어떻게해야합니까? 감사!

+0

getInstrumentation() addMonitor (NextActivity.class.getName(), NULL, TRUE).; 트릭을 했어! – initialxy

답변

4
getInstrumentation().addMonitor(NextActivity.class.getName(), null, true); 

트릭을 했습니까? 마지막 매개 변수는 활동 시작을 차단할지 여부를 나타내는 플래그입니다. 이것을 true로 설정하면 문제가 해결됩니다.

link to doc

+3

어디에서이 전화를 추가 했습니까? 좀 더 완벽한 답변을 게시 할 수 있습니까? –