2014-09-14 4 views
1

Robotium Recorder를 사용하여 앱을 테스트하고 있습니다. 내 문제는 내 애플 리케이션에 내가 얼마나 많은 시간을 사용자가 기록에 따라 시간이 좀 걸리는 백그라운드에서 오디오 변환을하고있다.Robotium 백그라운드로 테스트하는 방법 변환과 같은 서비스?

난 (백그라운드에서 변환) 10 분에 대한 기록하는 테스트 10 일 녹화 나의 마지막 녹화 robotium 종료를 완료하고 응용 프로그램을 죽일 때 너무 기록이 10 번 같은 때마다 실행하고있는 경우.

** 마지막 레코딩을 위해 파일이 백그라운드 (서비스) 로의 변환을 변환해야하지만 앱이 종료되어 변환에 실패했습니다. 내가 그것을 변환하는 데 걸리는 시간이 얼마나 잘 모릅니다 때문에

답변

0

사용할 수 있습니다 ** solo.sleep (int)를 사용할 수 없습니다 기능 호출 isServiceRunning() 기능.

public void testRun() { 
    . 
    . 
    if(isSurviceRunning()) { 
     solo.sleep(time); 
    } 
} 

이 방법은 앱의 백그라운드 서비스를 확인하고 부울을 반환합니다.

public boolean isServiceRunning() {  
ActivityManager manager = (ActivityManager) getActivity().getSystemService(Context.ACTIVITY_SERVICE); 
for (ActivityManager.RunningServiceInfo service : manager.getRunningServices(Integer.MAX_VALUE)) { 
    if ("com.pakage.name.yourcls.your_service_name".equals(service.service.getClassName())) { 
     Log.d("Running Service is->", "" + service.service.getClassName()); 
     return true; 
    } else { 
     Log.d("false", "" + service.service.getClassName()); 
    } 
} 
return false; 
} 
1

당신은 내가 testRun()에서 솔루션

있어 마지막 solo.waitForCondition()

final int TIMEOUT = 5000; 
Assert.assertTrue(solo.waitForCondition(new Condition() { 
    @Override 
    public boolean isSatisfied() { 
     // return true if the file has been converted. 
    } 
}, TIMEOUT));