2011-10-07 4 views
0

내 레이아웃에서 다음과 같이 정의 된 버튼이 있습니다.Robolectric가 메소드가 호출되었다고 주장 할 수 있습니까?

<Button 
       android:id="@+id/speakButton" 
       android:layout_height="wrap_content" 
       android:layout_width="fill_parent" 
       android:text="@string/speak" 
       android:onClick="speak" 
       /> 

onClick은 다음과 같은 내 액티비티의 메소드에 바인딩됩니다.

public void speak(View v) 
    { 
     // Do my stuff here 
    } 

Robolectric을 사용하여 해당 액티비티에 대한 간단한 테스트 클래스로, 버튼을 호출하는 테스트를 수행 할 수 있는지, 그리고 내 액티비티의 메서드가 OK인지 확인할 수 있는지 알고 싶습니다.

(내 모든 애플 리케이션에 걸쳐 버튼을 가지고있어, 그래서 그들은 아무렇게나 내가 shoudln't 걱정하는 이유에 대한 제안을하지 않는 한 그들은 올바르게 유선 있는지 확인하기위한 테스트를하고자)

@RunWith(RobolectricTestRunner.class) 
public class MyActivityTest 
{ 
    private MyActivitymActivity; 
    private Button speakButton; 

    @Before 
    public void setUp() throws Exception 
    { 
     mActivity = new MyActivity(); 
     mActivity.onCreate(null); 

     speakButton = (Button) mActivity.findViewById(com.jameselsey.apps.androidsam.R.id.speakButton); 

    } 

    @Test 
    public void testButtonsVisible() 
    { 
     assertThat(speakButton.getVisibility(), equalTo(View.VISIBLE));   
    } 

    @Test 
    public void buttonsInvokeIntendedMethods() 
    { 
     // Unsure how to implement this test 
    } 
} 

답변

0

나는 그들을 사용한 적이 없지만 당신이 TouchUtils 클래스로 이것을 할 수 있다고 생각합니다. 다음은 Android TouchUtils docs에 대한 링크입니다. 특히 clickView 메소드를 살펴 봐야합니다.

관련 문제