2014-09-22 4 views
1

클릭하면 기본 하나를 복원하고 내 활동에 다음 코드가 확인 : 분명히Robotium : 그 작업이 완료됩니다 및 "홈"버튼 내가 안드로이드 주석을 사용하고 있습니다

@OptionsItem 
void homeSelected() { 
    finish(); 
} 

를이 코드는 완료해야 사용자가 ActionBar에서 홈 버튼을 클릭했을 때의 현재 활동 하지만이 코드를 어떻게 테스트 할 수 있습니까? 홈 버튼을 클릭 한 후 현재 활동이 완료되고 이전 활동이 복원되었다는 것을 어떻게 든 검증 할 수 있기를 원합니다. 이것이 가능한가? 또는 적어도 홈 버튼을 클릭 한 후 내 homeSelected 메서드가 호출되는지 확인할 수 있습니까?

나는 Robotium을 사용하고 있는데 나는 다음과 같은 시험 방법이 있습니다

@SmallTest 
public void testGoBack() { 
    solo.clickOnActionBarHomeButton(); 
    // ???? How do I verify the homeSelected method was actually called? 
} 
+0

는 당신이 토스트를 추가 시도했다 그거야? – Umair

+0

android-annotations 플래그를 제거 할 수 있습니까? AA를 사용하지 않는다면이 질문은 똑같을 것이므로 AndroidAnnotations와는 관련이 없습니다. – WonderCsabo

답변

2

당신은 waitForActivity(...)를 사용할 수 있습니다.

waitForActivity(Class<? extends android.app.Activity> activityClass) 

대기는 활동에 대해 지정된 클래스를 일치.

documentation을 확인하십시오.

@SmallTest 
public void testGoBack() { 
    solo.clickOnActionBarHomeButton(); 

    solo.waitForActivity(com.example.UpActivity.class); 
} 

기본 루틴은 20 초의 시간 초과를 사용합니다.

PS : 또는 활동의 onDestroy() 방법에 디버그 로그를 추가

public class MyActivity extends Activity { 

    ... 
    @Override 
    protected void onDestroy() { 
     super.onDestroy(); 

     Log.d ("TAG", "Finishing MyActivity"); 
    } 
} 

및 시험 방법의 안쪽이 로그 메시지를 기다리는 :

waitForLogMessage("Finishing MyActivity"); 
+0

그것은 나를 위해 작동하지 않았다. 예상 한 것 : <... m.example.d.testing. [UpActivity] Activity_>하지만 : <... m.example.d.testing. [Current] Activity_> – netimen

+0

@netimen : 저는 아닙니다. 당신이 예상 한 활동. 대개 앱의 모든 활동을 기다릴 수 있습니다. 일치하는 클래스 만 제공하면됩니다. 위의 관련 코드를 추가 할 수 있습니다. 또는 로그 메시지를 기다리면서 모든 문제를 해결할 수 있습니다 (위의 업데이트 참조). – Trinimon

+0

감사합니다! 나는 로그 메시지가있는 영혼을 좋아한다. – netimen