2012-02-23 120 views

回答

4

只需撥打performClick()方法即可。請參閱the View docs以供參考。

Button button = (Button) findViewByid(R.id.mybutton); 
button.performClick(); 

或者,如果冰淇淋三明治(API等級15)開發,加入了callOnClick()方法。儘管如此,performClick()更適合您的需求。

1

請看Robotium項目。它是Android的測試框架,您可以輕鬆實現您的願望,等等。

+1

現在我寧願留在標準的Android測試框架的範圍內 – mfeingold 2012-02-23 16:23:11

0

我有很多performClick方法的問題(與使用錯誤的線程和whatnot有關)。按照android training lesson中所述,使用TouchUtils.clickView的運氣更多。以下是一些示例用法:

public class ClickFunActivityTest extends ActivityInstrumentationTestCase2 { 
    ... 
    @Override 
    protected void setUp() throws Exception { 
     super.setUp(); 

     setActivityInitialTouchMode(true); 

     mClickFunActivity = getActivity(); 
     mClickMeButton = (Button) 
       mClickFunActivity.findViewById(R.id.launch_next_activity_button); 
    } 

    public void testClickMeButton_clickButtonAndExpectInfoText() { 
     TouchUtils.clickView(this, mClickMeButton); 
     //Do some other testing afterward 
    } 
} 

完整的代碼可以在鏈接或here中找到。

0

接受的答案對我來說並不完全適用,我正在使用的方法沒有performClick方法。對於未來的人來說,像我這樣的情況下,你正在做儀器測試,你可能需要這樣的東西:

onView(withId(R.id.myButton)).perform(ViewActions.click());