2013-10-16 2 views
0

여러 가지 활동이있는 안드로이드 앱에 Robotium을 사용하여 Testcase를 작성하고 있습니다. 앱은 UI에 Drawer을 구현합니다. 그러나 솔로가 서랍을 열면 예외가 Called From Wrong Thread Exception이됩니다. ActionBar Home을 클릭하면 서랍이로드됩니다. 당신에Robotium 테스트 케이스의 잘못된 스레드 예외에서 호출되었습니다.

public void test4Drawer() 
{ 
    solo1.clickOnActionBarHomeButton(); 
    Boolean actual=solo1.searchText("About"); 
    Boolean expected =true; 
    assertEquals("Drawer Not Loaded",expected,actual); 
} 
+1

문제와 관련이 없습니다. 가능한 경우 원시 유형을 사용하십시오. 귀하의 경우에는 부울 대신 부울을 사용하는 것이 바람직합니다 – Blackbelt

답변

1

설정() :

mActivity = getActivity(); 

그리고 당신은 사건이 추가 테스트에서 :

mActivity.runOnUiThread(new Runnable() { 
    public void run() { 
     solo1.clickOnActionBarHomeButton(); 
    } 
}); 

하지만 STANDART robotium 방법을 사용할 때 오류가 나타나지 않아야합니다. 이 해결책이 당신을 위해 작동하지 않으면, 여기에 전체 스택 추적을 공유하십시오.

1

Robotium 4.3 버전에 문제가있어 runOnUiThread 도움이되지 않습니다.

관련 항목 bug report에 따르면 Robotium 4.3.1 버전에서 수정되었습니다.

here. 당신이 runOnUiThread 코드를 유지하고 LIB를 업그레이드하는 경우

, 당신은 로그 캣에서 훨씬 더 명시 적으로 예외가됩니다

E/AndroidRuntime(32201): java.lang.RuntimeException: 
    This method can not be called from the main application thread 

runOnUiThread를 제거하고 그것은 잘 될 것입니다.