Espresso常用测试代码

2017-12-14  本文已影响0人  会飞的大象_

/**

* 获取onResumed状态的activity

*

* @param className 获取想要activity的完整类名

* @return Activity

* @author JY

* @time 2017/6/13 10:52

*/

public Activity getActivityInstance(final String className) {

    final ArrayList skipFinal = new ArrayList<>();

    try {

        mActivityRule.runOnUiThread(new Runnable() {

            public void run() {

                Collection resumedActivities = ActivityLifecycleMonitorRegistry.getInstance().getActivitiesInStage(Stage.RESUMED);

                for (Activity act : resumedActivities) {

                    if (TextUtils.equals(className, act.getClass().getName())) {

                        skipFinal.add(act);

                        break;

                    }

                }

        }});

    } catch (Throwable throwable) {

        throwable.printStackTrace();

    }

    return skipFinal.get(0);

}

/**

* 断言某控件是否正在显示中

*

* @param text 控件文字

* @author JY

* @time 2017/6/14 10:37

*/

public void assertIsShowing(String text) {

    onView(withText(text)).check(matches(isDisplayed()));

}

/**

* 断言某控件是否正在显示中

*

* @param id 控件id

* @author JY

* @time 2017/6/13 11:00

*/

public void assertIsShowing(int id) {

    onView(withId(id)).check(matches(isDisplayed()));

}

/**

* 点击控件并等待默认时间

*

* @param id 控件id

* @author JY

* @time 2017/6/13 10:30

*/

public void performClick(int id) {

    onView(withId(id)).perform(click());

    SystemClock.sleep(DEFAULTTIME);

}

/**

* 点击控件并等待一段时间

*

* @param id          控件id

* @param millisecond 延时等待

* @author JY

* @time 2017/6/13 10:22

*/

public void performClick(int id, long millisecond) {

    onView(withId(id)).perform(click());

    SystemClock.sleep(millisecond);

}

配置Espresso

打开APP Module中得build.gradle文件,在dependencies中加入:

androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2.1'

androidTestCompile 'com.android.support.test:runner:0.4.1'

在android.defaultConfig中加入:

testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"

EspressoAPI图示

上一篇 下一篇

猜你喜欢

热点阅读