2010-12-09 3 views
7

가로 및 세로 모드에서 내 앱의 다른 동작을 테스트하고 싶습니다. 세로 모드에서 내 응용 프로그램의 동작을 테스트하는 훌륭한 작업을 수행하는 android.test.InstrumentationTestCase의 하위 클래스가 있지만 테스트를 실행하기 전에 필자가 (수동으로) 에뮬레이터를 가로로 놓으면 실패합니다. 괜찮아요 - 풍경의 동작이 인물 테스트를 통과해서는 안됩니다. 그리고 을 확인하십시오. 내 테스트 코드에서 오리엔테이션을 확인하면 테스트 실패를 피할 수 있습니다.하지만 내가하고 싶은 것은 (테스트 코드에서) 에뮬레이터를 테스트 할 때마다 올바른 상태로 만듭니다. 어떻게해야합니까?테스트 코드에서 안드로이드 에뮬레이터를 어떻게 회전시킬 수 있습니까?

답변

2

내가 수행 한 작업은 OrientationGetter 인터페이스로 오리엔테이션을 얻은 Activity의 코드 비트를 추출하고 Activity에 디바이스 (또는 에뮬레이터) 방향을 리턴 한 DefaultOrientationGetter를주는 것입니다. 이제 내 테스트에서 필요에 따라 세로 또는 가로 방향을 반환하는 바보 스텁 OrientationGetter를 삽입 할 수 있으며 실제로 에뮬레이터의 상태를 제어하지 않고도 내 Activity 코드를 테스트 할 수 있습니다. 그것은 잘 작동합니다.

+0

멋진 아이디어! 그 덕분입니다. – davidjnelson

3

당신이 활동을 회전 할 경우, 당신이 사용하고자하는 것입니다 :) 당신이 할 수있는

1

내가 보이지 않아요 아무것도 다음 키 시퀀스를 눌러 그것을 않습니다 에뮬레이터 콘솔 명령처럼 사용하십시오. 호스트에서 Xtest 또는 일부 win32 코드를 사용하여 F11/F12를 에뮬레이터에 삽입 할 수 있습니다 (그리고 아마도 창 지오메트리를 읽음으로써 현재 상태를 결정할 수 있습니다). 테스트 논리가 에뮬레이터에서 실행 중이면 에뮬레이터에서 10.0.2.2로 표시되는 호스트의 포트에서 청취하는 것으로 tcp out하여 해당 키를 주입하도록 요청할 수 있습니다. 그러나 이것은 우아하지 않습니다.

에뮬레이터를 재구성하여 콘솔 명령을 추가하면 약간 더 좋을 것입니다.

관련 문제