2012-06-22 10 views
0

Robotium을 사용하는 Android 앱용 테스트 사례를 작성했습니다. 내 테스트 사례 중 하나에서 다른 앱의 다른 활동을 열어 이미지를 표시하는 파일 (예 : 이미지)을 엽니 다.Robotium : 테스트중인 활동으로 돌아 가기

여기까지 모든 것이 좋습니다. 그러나 이후에는 추가 기능을 테스트하기 위해 테스트중인 활동으로 돌아가고 싶습니다.

어떻게 처리 할 수 ​​있습니까?

어느

solo.sendKey(android.view.KeyEvent.KEYCODE_BACK); 

solo.goBack(); 

solo.getCurrentActivity().onBackPressed() 

작품 이미지를 표시하는 활동이 다른 프로세스에 따라서 다른 응용 프로그램에 속하고 있기 때문이다.

내가 시도 할 수있는 다른 방법이 있습니까?

+1

아니요, 불가능합니다. 다른 앱에 INJECT_EVENT 허가가 있고 앱이 키 저장소로 서명 된 경우가 아니면 다른 방법으로 불가능합니다. – user370305

답변

4

수락 테스트를 수행하고 있습니다. 예, 시스템의 UI가 작동하는지 확인하는 것입니다.

이미지가 열려 있는지 테스트 할 필요가 없습니다 (앱 범위 밖에 있음).

이 이미지를 열 때 올바른 의도 (또는 모든 코드 스 니펫)를 호출해야한다는 별도의 단위 테스트를하는 것이 좋습니다.

그런 식으로 테스트를 통해 코드를 작성하고 다른 사람 코드를 테스트하는 데 문제가되지 않습니다.

+1

사실 내가하는 일은 단위 테스트를 성능 측정을위한 작업량으로 사용한다는 것입니다. 따라서 어떤 이유로 이미지를 열려고합니다. Robium을 사용하여 테스트중인 내 활동으로 돌아갈 수 있는지 여부를 알고 싶습니다. –

+1

@ClaasWilke 아니, 아니야. – Blundell

1

난 당신이 초기 상태에 도달 할 대상 활동을 다시 시작하는 것이 좋습니다 :

..... mSolo.finishOpenedActivities를(); setActivity (null); mSolo = new Solo (mInstrumentation, getActivity()); 당신이 ADB 명령을 실행할 수 있고 당신이 의도에 의해 시작 된 응용 프로그램을 알고있는 경우 ....

0

, 당신은 할 수 있습니다 :

adb shell am force-stop <package-of-started-app> 

은 그럼 당신은 다시 이전의 활동을 얻는다.

참고 :이 의도에 대해 가능한 여러 개의 앱이 있고 앱 선택 대화 상자가 표시되면 작동하지 않습니다. 이 경우 수동으로이 인 텐트의 기본 앱을 설정해야합니다. 내가 브라우저에서 URL을 열고 내가 시험에서 다시 활동 얻을 내 경우에는

mSolo.goBackToActivity("MainActivity"); 

:

1

은 나를 위해,이 작업을 수행합니다. 유일한 단점 (지금까지)은 다른 응용 프로그램이 뒷받침에 남아 있지만, 아마도 거기에 대한 수정도있을 것입니다.

이 질문을받은 후에이 방법이 추가 된 것으로 가정합니다.

관련 문제