簡體   English   中英

如何在Android Espresso上檢查/測試Snackbar解雇

[英]How to check/test Snackbar dismisses on Android Espresso

我想測試一下Espresso是否知道如何檢查Snackbar解雇? 我目前正在刪除標簽並顯示Snackbar讓用戶有機會撤消。 我刪除標簽后Snackbar.LEGNTH_LONG ,我想測試,如果我的標簽之后仍然是名單上Snackbar.LEGNTH_LONG

我還沒想出來。 Espresso有可能嗎?

您可以將此類添加到項目中: https//android.googlesource.com/platform/frameworks/support/+/a1de3ee/design/tests/src/android/support/design/testutils/SnackbarUtils.java

它是一個包含此方法的utils類:

/**
 * 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);

在您的測試中,檢查您的標簽是否仍在列表中。 我沒有測試過這個,但我認為它應該可行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM