20

Có cách nào để kiểm tra bằng cách sử dụng Espresso mà thanh snack hiển thị cùng với văn bản phù hợp không?Thử nghiệm chương trình Snackbar với Espresso

Tôi có một cuộc gọi đơn giản để tạo ra một snackbar

Snackbar.make(mView, "My text", Snackbar.LENGTH_LONG).show(); 

Tôi đã thử điều này mà không may mắn

onView(withText("My text")).inRoot(withDecorView(not(is(mActivityRule.getActivity().getWindow().getDecorView())))).check(matches(isDisplayed())); 

Trả lời

36

này đã làm việc cho tôi, xin vui lòng thử.

onView(allOf(withId(android.support.design.R.id.snackbar_text), withText("My text"))) 
      .check(matches(isDisplayed())); 
+0

Điều này không cung cấp câu trả lời cho câu hỏi. Để phê bình hoặc yêu cầu làm rõ từ tác giả, hãy để lại nhận xét bên dưới bài đăng của họ. – Sufian

+0

Từ ngữ mới có hoạt động không? – ksarmalkar

+0

Có hoạt động! Cảm ơn @ksarmalkar – SleepingLlama

6

Một thay thế

private void checkSnackBarDisplayedByMessage(
     @StringRes int message) { 
    onView(withText(message)) 
      .check(matches(withEffectiveVisibility(
        ViewMatchers.Visibility.VISIBLE 
      ))); 
} 
0

Tôi thấy câu trả lời trước nhưng tôi nghĩ rằng điều này sẽ tốt hơn.

@Test 
public void onFabClick_shouldDisplaySnackbar() throws Exception { 
    onView(withId(R.id.fab)).perform(click()); 

    // Compare with the text message of snackbar 
    onView(withText(R.string.snackbar_message)) 
     .check(matches(isDisplayed())); 
} 
Các vấn đề liên quan