Espresso常用测试代码
/**
* 获取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图示
![](https://img.haomeiwen.com/i9488632/567b9fce2d6a2258.jpg)