2015-11-10 13 views
10

Tôi có một trình xem tùy chỉnh (với tính năng vuốt bị vô hiệu vì lý do) hoạt động với tablayout. Thay đổi nội dung dựa trên tab nào được chọn. Tôi muốn kiểm tra điều này bằng cách sử dụng espresso: 1) Nhấp vào một tab cụ thể 2) Kiểm tra một số dữ liệu trong một trang cụ thể của tab Tôi có thể làm điều đó như thế nào. Tôi là người mới sử dụng espressoCách đặt tab hiện tại trong chế độ xem ảnh với tablayout

Trả lời

-3

Espresso nên được sử dụng khi bạn biết rõ những gì được mong đợi trong giao diện người dùng và do đó bạn có thể xác minh tương tự.

Trong trường hợp của bạn, để chuyển đến bất kỳ tab nào, bạn có thể sử dụng thao tác xem để nhấn vào tab đó. Để xác minh dữ liệu, trước tiên bạn nên biết dữ liệu nào được mong đợi ở đó trên tab đó và sau đó chỉ sử dụng đối sánh để kiểm tra xem chúng có được hiển thị hay không.

+1

Điều này không giải thích cách chọn một tab cụ thể trong ViewPager. –

12

Có một số cách để làm điều này, một điều dễ dàng là chọn phần tử bằng cách tiêu đề tab, tôi sử dụng mã này:

Matcher<View> matcher = allOf(withText("TAB TITLE"), 
      isDescendantOfA(withId(R.id.customTab))); 
onView(matcher).perform(click()); 
SystemClock.sleep(800); // Wait a little until the content is loaded 

Bạn chỉ phải thích ứng với các khớp để bố trí của bạn. Sau đó, kiểm tra nội dung.

Ví dụ:

onView(withId(R.id.someId)).check(matches(isCompletelyDisplayed())); 

hay:

onView(withText(R.string.someText)).check(matches(isCompletelyDisplayed())); 

Bạn có thể tìm thấy ví dụ ở đây Chỉ định Xem Matcher phần: http://developer.android.com/intl/es/training/testing/ui-testing/espresso-testing.html

Nếu bạn đang sử dụng một RecyclerView để hiển thị nội dung của các tab có một cái nhìn tại đây: Espresso RecyclerView inside ViewPager

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