2013-03-07 3 views
2

이 문제에 대한 간단한 테스트 프로젝트가 있는데 어떻게 실패하는지 이해할 수 없습니다.Robotium clickOnButton에 대한 2 가지 테스트

테스트중인 프로젝트는 테스팅 목적으로 레이아웃에만 버튼을 추가합니다.

junit.framework.AssertionFailedError :

public class TestMainActivity extends ActivityInstrumentationTestCase2<MainActivity> { 

    private Solo solo; 

    public TestMainActivity() { 
     super(MainActivity.class); 
    } 

    public void setUp() throws Exception { 
     solo = new Solo(getInstrumentation(), getActivity()); 
    } 

    public void test1() { 
     solo.clickOnButton(com.example.testrobotium.R.id.test_button); 
    } 

    public void test2() { 
    } 

    @Override 
    public void tearDown() throws Exception { 
     solo.finishOpenedActivities(); 
    } 
} 

이 테스트 클래스를 실행, 반환 된 오류 추적이 clickOnButton에 대한 호출을 가리키는, 아래 : 여기

<Button 
    android:id="@+id/test_button" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="Click" /> 

는 테스트 클래스입니다 : 2131165185 버튼을 찾을 수 없습니다! at com.jayway.android.robotium.solo.Waiter.waitForAndGetView (Waiter.java:417) at com.jayway.android.robotium.solo.Clicker.clickOn (Clicker.java:374) at com.jayway .android.robotium.solo.Solo.clickOnButton (Solo.java:1052) at com.example.testrobotium.test.TestMainActivity.test1 (TestMainActivity.java:22) at java.lang.reflect.Method.invokeNative (기본 방법) android.test.InstrumentationTestCase.runMethod (InstrumentationTestCase.java:204에서 ) android.test.ActivityInstrumentationTestCase2.runTest에서 android.test.InstrumentationTestCase.runTest (InstrumentationTestCase.java:194) (ActivityInstrumentationTestCase2.java:186에서 ) android.test.AndroidTestRunner의 android.app.Instrumentation $ InstrumentationThread에서 runTest (AndroidTestRunner.java:169) android.test.AndroidTestRunner.runTest (AndroidTestRunner.java:154)에서 android.test.InstrumentationTestRunner.onStart (InstrumentationTestRunner.java:529)에서 . 실행 (Instrumentation.java:1448)

이 문제의 원인이되는 테스트 클래스에서 뭔가가 누락 되었습니까?

답변

5

문제는 당신이 그것을 어떻게 사용했는지 작동하지 않습니다!

solo.clickOnButton()에는 단추의 텍스트를 인수로 사용하고 다른 하나는 인덱스를 사용하는 두 가지 구현이 있습니다. 당신은 int 값일 수있는 버튼의 ID를 전달하지만 int 값은 인덱스가 아닙니다.

solo.clickOnView(solo.getView(com.example.testrobotium.R.id.test_button)); 

당신은 내가 도와 드리겠습니다 더 설명을해야하는 경우 :

당신은 당신의 코드 대신 다음 싶어요.

+0

안녕하세요 Paul! 고마워, 내 실수를 분명히 지적 했어. 그것은 작동해야한다고 들리지만 이제는 "Click can not complete"오류가 나타납니다. 어떤 생각? – yjw

+0

아이디어가 없습니다. 버튼이 작동하지 않는다고 생각합니다. 모든 코드를 보거나 응용 프로그램을 실행하지 않고도 말하기가 어렵습니다. –

관련 문제