2015-07-06 20 views
18

Sự khác nhau giữa isDisplayedwithEffectiveVisibility là gì?Espresso - withEffectiveVisibility vs isDisplayed

onView(withText("Much Dagger")).check(matches(withEffectiveVisibility(ViewMatchers.Visibility.VISIBLE))); 


onView(withText("Much Dagger")).check(matches(ViewMatchers.isDisplayed()); 

Trả lời

21

Theo Tài liệu

Trả một khớp phù hợp với {@link Xem} s có "hiệu quả" tầm nhìn thiết lập với giá trị nhất định. Tầm nhìn hiệu quả sẽ tính đến không chỉ giá trị hiển thị của chế độ xem mà còn cả giá trị của tổ tiên của nó. Trong trường hợp của View.VISIBLE, điều này có nghĩa là khung nhìn và tất cả tổ tiên của nó có khả năng hiển thị = VISIBLE. Trong trường hợp GONE và INVISIBLE, điều ngược lại - bất kỳ phụ huynh GONE hoặc INVISIBLE nào sẽ khiến tất cả các con của nó có khả năng hiển thị hiệu quả.

Lưu ý:

Trái với những gì tên có thể hàm ý, xem tầm nhìn không trực tiếp chuyển thành cho dù quan điểm được hiển thị trên màn hình (sử dụng isDisplayed() cho rằng). Ví dụ: chế độ xem và tất cả tổ tiên của nó có thể có khả năng hiển thị = VISIBLE, nhưng chế độ xem có thể cần được cuộn đến để hiển thị thực sự với người dùng. Trừ khi bạn đang nhắm mục tiêu cụ thể giá trị hiển thị với thử nghiệm của mình, hãy sử dụng isDisplayed.

Vì vậy, nếu sử dụng cho việc xác minh nếu một cái nhìn có thể nhìn thấy sử dụng isDisplayed() nhưng để xác minh khác trong trường hợp nếu sử dụng vô hình và đi withEffectiveVisibilty()

Các vấn đề liên quan