2013-04-05 1 views
4

Robotium을 Android 애플리케이션의 Junit 테스트 용 라이브러리로 사용합니다. 나는 잘 작동하는 몇 가지 테스트를 작성했습니다. 그러나 native ActionBar위로/홈 버튼을 클릭하면 테스트를 통과하지 못했습니다.(Robotium) 동작 표시 줄 위로/홈 버튼 클릭

내 테스트 코드는 매우 간단하다 :

Solo solo = new Solo(getInstrumentation(), getActivity()); 
... 
solo.clickOnActionBarHomeButton(); // I expected it will click the Up/Home button of ActionBar 

나는 위의 코드는 기본 액션 바의 위/홈 버튼을 클릭 할 것으로 예상하지만, 아무것도 작업 표시 줄에서 일어나는되지 않았다 실패한다. 왜??

P. Android 4.2.1 기기를 사용하고 있습니다.

+0

아무것도 ? 클릭 한 후 테스트 코드에 다른 작업이 있습니까? – maszter

+0

화면의 이미지를 넣고 화면에서 클릭하려는 위치를 설명 할 수 있습니까? –

+0

Robotium 5.0.1 solo.clickOnActionBarHomeButton()이 4 개의 장치에서 작동하지 않음 : 4.0.4, 4.1.2, 4.2.2., 4.4 –

답변

5

나는이 기능을 사용

public void clickOnActionBarHomeButton(Solo solo) { 
    View homeView = solo.getView(Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB ? android.R.id.home : R.id.home); 
    solo.clickOnView(homeView); 
} 

는 어쩌면 그것은 완벽한 결정이 아니다,하지만 그것을 작동합니다.

+0

Robotium에서 NavigationDrawer를 올바르게 열려면 작동합니다. –

1

우리의 응용 프로그램에서 Home 버튼은 결국 NavUtils.navigateUpFromSameTask을 호출합니다. 사용시

solo.clickOnActionBarHomeButton(); 

Home 버튼을 클릭하면 작동하지 않습니다. 그러나 나는 solo.clickOnScreen 버튼을 Home 버튼이 안정적으로 클릭하는 것으로 나타났습니다. 그래서 우리는 solo.clickOnActionBarHomeButton 대신이 방법을 사용하십시오

protected void clickOnHome() { 
    solo.clickOnScreen(50, 50); //usually hits Home button 
} 
0

할 수 있습니다 다음 코드를 사용하여 (즉 활동의 첫 번째하여 ImageButton 요소입니다) 상/홈 버튼을 클릭 로그에

solo.clickOnImageButton(0); 
instrumentation.waitForIdleSync();