如何在Android中模拟单击按钮进行单元测试

时间:2012-02-23 16:12:48

标签: android unit-testing

如何在应用程序测试中模拟单击按钮。我试着将注意力集中在按钮上并发送按键"输入"但没有雪茄。

4 个答案:

答案 0 :(得分:5)

只需调用performClick()方法即可。请参阅the View docs以供参考。

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

或者,如果开发冰淇淋三明治(API级别15),则添加callOnClick()方法。不过,performClick()非常适合您的需求。

答案 1 :(得分:1)

请查看Robotium项目。它是Android的测试框架,您可以轻松实现您想要的功能,等等。

答案 2 :(得分:1)

接受的答案对我来说并不合适,我正在使用的东西没有performClick方法。对于那些来到这里的人来说,如果您正在进行仪器化测试,您可能需要这样的事情:

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

答案 3 :(得分:0)

我在performClick方法上遇到了很多问题(与使用错误的线程和诸如此类的东西有关)。按照本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

中找到