Oma*_*mar 9 android android-espresso
我有一个启动secondActivity的firstActivity,在secondActivity中我有一个加载对话框(不是AsyncTask),我需要让Espresso等到对话框消失后再继续测试.
我在哪里实现IdlingResource?我怎样才能让它等待dismissDialog()函数?
这是我试图做的:
class DocumentLoadingIdlingResource implements IdlingResource {
private ResourceCallback callback;
@Override
public String getName() {
return "Documnet loading idling resource";
}
@Override
public boolean isIdleNow() {
Activity activity;
try {
activity = getCurrentActivity();
} catch (Throwable e) {
return false;
}
if(activity.getClass().getName().equals(EditorActivity.class.getName())
&& activity.loadingDialogShowing() == false) {
return false;
}
return true;
}
@Override
public void registerIdleTransitionCallback(ResourceCallback callback) {
this.callback = callback;
}
}
Activity getCurrentActivity() throws Throwable {
getInstrumentation().waitForIdleSync();
final Activity[] activity = new Activity[1];
runTestOnUiThread(new Runnable() {
@Override
public void run() {
java.util.Collection<Activity> activites = ActivityLifecycleMonitorRegistry.getInstance().getActivitiesInStage(Stage.RESUMED);
activity[0] = com.google.common.collect.Iterables.getOnlyElement(activites);
}});
return activity[0];
}
Run Code Online (Sandbox Code Playgroud)
该类在测试类中实现.
这里有几个问题:
您可以执行以下操作:
一旦实现此问题,这将变得更简单:https://code.google.com/p/android-test-kit/issues/detail ?id=71
| 归档时间: |
|
| 查看次数: |
5170 次 |
| 最近记录: |