2014-01-09 3 views
2

다음 코드를 사용하여 Android의 스위치 구성 요소를 선택하고 선택을 취소했습니다. 안드로이드에서 터치 유틸리티로 전환을 선택 취소하는 방법 Junit Testing?Android Junit Test에서 스위치를 클릭하는 방법?

 // wait 2 seconds for the start of the activity 
    final FinalizeCalibrationActivity finalActivity = (FinalizeCalibrationActivity) monitorFinalActivity 
      .waitForActivityWithTimeout(2000); 
    assertNotNull("FinalizeCalibrationActivity is null", finalActivity); 

    final Switch swtSignedRdwPortal = (Switch) finalActivity 
      .findViewById(R.id.swt_signed_rdw_portal); 

    JunitUtils.waitTime(3); 
    swtSignedRdwPortal.setChecked(false); 

    JunitUtils.waitTime(3); 
    swtSignedRdwPortal.setChecked(true); 

답변

0

스위치보기를 직접 사용할 수 없습니다. 다음과 같은 실패한 어설 션을 던질 것입니다 : "android-only-the-original-thread-that-created-a-view-hierarchy-its-views-its-views". 이 안드로이드 Junit와 시험에 나를 위해 잘 작동

이 같은 코드를 다시 사용했습니다,

// wait 2 seconds for the start of the activity 
    final FinalizeCalibrationActivity finalActivity = (FinalizeCalibrationActivity) monitorFinalActivity 
      .waitForActivityWithTimeout(2000); 
    assertNotNull("FinalizeCalibrationActivity is null", finalActivity); 

    final Switch swtSignedRdwPortal = (Switch) finalActivity 
      .findViewById(R.id.swt_signed_rdw_portal); 

    JunitUtils.waitTime(3); 
    finalActivity.runOnUiThread(new Runnable() { 

     @Override 
     public void run() { 
      swtSignedRdwPortal.setChecked(false); 
     } 
    }); 

    JunitUtils.waitTime(3); 
    finalActivity.runOnUiThread(new Runnable() { 

     @Override 
     public void run() { 
      swtSignedRdwPortal.setChecked(true); 
     } 
    }); 

.!