我想测试Espresso是否知道如何检查Snackbar
的消失?我目前正在删除一个标签,并显示Snackbar
,给用户撤消的机会。我在Snackbar.LEGNTH_LONG
之后删除标签,我想测试Snackbar.LEGNTH_LONG
后我的标签是否仍然在列表中。
我还没有弄清楚这一点。在Espresso上是否有可能实现?
我想测试Espresso是否知道如何检查Snackbar
的消失?我目前正在删除一个标签,并显示Snackbar
,给用户撤消的机会。我在Snackbar.LEGNTH_LONG
之后删除标签,我想测试Snackbar.LEGNTH_LONG
后我的标签是否仍然在列表中。
我还没有弄清楚这一点。在Espresso上是否有可能实现?
/**
* Helper method that dismissed that specified {@link Snackbar} and waits until
* it has been fully dismissed. Note that calling this method will reset the currently
* set {@link Snackbar.Callback}.
*/
public static void dismissSnackbarAndWaitUntilFullyDismissed(Snackbar snackbar) {
SnackbarDismissedCallback snackbarCallback = new SnackbarDismissedCallback();
snackbar.setCallback(snackbarCallback);
try {
// Register our listener as idling resource so that Espresso waits until the
// the snackbar has been fully dismissed
Espresso.registerIdlingResources(snackbarCallback);
// Dismiss the snackbar
snackbar.dismiss();
// Mark the callback to require waiting for idle state
snackbarCallback.mNeedsIdle = true;
// Perform a dummy Espresso action that loops until the UI thread is idle. This
// effectively blocks us until the Snackbar has completed its sliding animation.
onView(isRoot()).perform(waitUntilIdle());
snackbarCallback.mNeedsIdle = false;
} finally {
// Unregister our idling resource
Espresso.unregisterIdlingResources(snackbarCallback);
// And remove our tracker listener from Snackbar
snackbar.setCallback(null);
}
}
然后执行:
SnackbarUtils.dismissSnackbarAndWaitUntilFullyDismissed(snackbar);
snackbar.setCallback(callback)
已被弃用。请改用snackbar.addCallback
。这样,任何现有的回调都不会被删除。 - Maalevolent