Khung thử nghiệm Espresso - Xem các khẳng định

Như đã thảo luận trước đó, xác nhận chế độ xem được sử dụng để khẳng định rằng cả chế độ xem thực tế (được tìm thấy bằng cách sử dụng trình so khớp chế độ xem) và chế độ xem mong đợi là giống nhau. Một mã mẫu như sau,

onView(withId(R.id.my_view)) .check(matches(withText("Hello")))

Đây,

  • onView () trả về đối tượng ViewInteration tương ứng với chế độ xem đã so khớp. ViewInteraction được sử dụng để tương tác với chế độ xem phù hợp.

  • withId (R.id.my_view) trả về một trình so khớp chế độ xem sẽ khớp với chế độ xem (thực tế) có thuộc tính id bằng với my_view .

  • withText (“Xin chào”) cũng trả về một trình so khớp chế độ xem sẽ khớp với chế độ xem (dự kiến) có các thuộc tính văn bản bằng Hello .

  • check là một phương thức chấp nhận một đối số kiểu ViewAssertion và thực hiện xác nhận bằng cách sử dụng đối tượng ViewAssertion được truyền vào .

  • đối sánh (withText (“Hello”)) trả về xác nhận chế độ xem, điều này sẽ thực hiệnreal jobkhẳng định rằng cả chế độ xem thực tế (được tìm thấy bằng cách sử dụng withId ) và chế độ xem mong đợi (được tìm thấy bằng cách sử dụng withText ) là một và giống nhau.

Hãy để chúng tôi tìm hiểu một số phương pháp được cung cấp bởi khung thử nghiệm cà phê espresso để khẳng định đối tượng xem.

không tồn tại()

Trả về xác nhận chế độ xem, điều này đảm bảo rằng trình đối sánh chế độ xem không tìm thấy bất kỳ chế độ xem phù hợp nào.

onView(withText("Hello")) .check(doesNotExist());

Ở đây, trường hợp kiểm tra đảm bảo rằng không có chế độ xem nào có văn bản Xin chào.

diêm()

Chấp nhận trình so khớp chế độ xem mục tiêu và trả về xác nhận chế độ xem, điều này đảm bảo rằng trình so khớp chế độ xem (thực tế) tồn tại và khớp với chế độ xem được khớp với chế độ xem mục tiêu.

onView(withId(R.id.textView_hello)) .check(matches(withText("Hello World!")));

Ở đây, trường hợp kiểm tra đảm bảo rằng chế độ xem có id, R.id.textView_hello tồn tại và khớp với chế độ xem đích có văn bản Hello World!

isBottomAlignedWith ()

Chấp nhận trình so khớp chế độ xem mục tiêu và trả về xác nhận chế độ xem, điều này đảm bảo rằng trình so khớp chế độ xem (thực tế) tồn tại và được căn chỉnh dưới cùng với trình so khớp chế độ xem mục tiêu.

onView(withId(R.id.view)) .check(isBottomAlignedWith(withId(R.id.target_view)))

Ở đây, trường hợp kiểm tra đảm bảo rằng chế độ xem có id, R.id.view tồn tại và được căn chỉnh dưới cùng với chế độ xem có id, R.id.target_view .

isComplempleAbove ()

Chấp nhận trình so khớp chế độ xem mục tiêu và trả về xác nhận chế độ xem, điều này đảm bảo rằng trình so khớp chế độ xem (thực tế) tồn tại và được đặt hoàn toàn phía trên trình so khớp chế độ xem mục tiêu.

onView(withId(R.id.view)) .check(isCompletelyAbove(withId(R.id.target_view)))

Ở đây, trường hợp kiểm tra đảm bảo rằng chế độ xem có id, R.id.view tồn tại và được đặt hoàn toàn phía trên chế độ xem có id, R.id.target_view

isComplempleBelow ()

Chấp nhận trình so khớp chế độ xem mục tiêu và trả về xác nhận chế độ xem, điều này đảm bảo rằng trình so khớp chế độ xem (thực tế) tồn tại và được đặt hoàn toàn bên dưới trình so khớp chế độ xem mục tiêu.

onView(withId(R.id.view)) .check(isCompletelyBelow(withId(R.id.target_view)))

Ở đây, trường hợp kiểm tra đảm bảo rằng chế độ xem có id, R.id.view tồn tại và được đặt hoàn toàn bên dưới chế độ xem có id, R.id.target_view .

isComplempleLeftOf ()

Chấp nhận trình đối sánh chế độ xem mục tiêu và trả về xác nhận chế độ xem, điều này đảm bảo rằng trình đối sánh chế độ xem (thực tế) tồn tại và được đặt hoàn toàn bên trái trình đối sánh chế độ xem mục tiêu.

onView(withId(R.id.view)) .check(isCompletelyLeftOf(withId(R.id.target_view)))

Ở đây, trường hợp kiểm tra đảm bảo rằng chế độ xem có id, R.id.view tồn tại và được đặt hoàn toàn bên trái chế độ xem có id, R.id.target_view

isComplempleRightOf ()

Chấp nhận trình so khớp chế độ xem mục tiêu và trả về xác nhận chế độ xem, điều này đảm bảo rằng trình so khớp chế độ xem (thực tế) tồn tại và được đặt hoàn toàn bên phải của trình so khớp chế độ xem mục tiêu.

onView(withId(R.id.view)) .check(isCompletelyRightOf(withId(R.id.target_view)))

Ở đây, trường hợp kiểm tra đảm bảo rằng chế độ xem có id, R.id.view tồn tại và được đặt hoàn toàn bên phải chế độ xem có id, R.id.target_view.

isLeftAlignedWith ()

Chấp nhận trình so khớp chế độ xem mục tiêu và trả về xác nhận chế độ xem, điều này đảm bảo rằng trình so khớp chế độ xem (thực tế) tồn tại và được căn trái với trình so khớp chế độ xem mục tiêu.

onView(withId(R.id.view)) .check(isLeftAlignedWith(withId(R.id.target_view)))

Ở đây, trường hợp kiểm tra đảm bảo rằng chế độ xem có id, R.id.view tồn tại và được căn trái với chế độ xem có id, R.id.target_view

isPartiallyAbove ()

Chấp nhận trình so khớp chế độ xem mục tiêu và trả về xác nhận chế độ xem, điều này đảm bảo rằng trình so khớp chế độ xem (thực tế) tồn tại và được đặt một phần phía trên trình so khớp chế độ xem mục tiêu.

onView(withId(R.id.view)) .check(isPartiallyAbove(withId(R.id.target_view)))

Ở đây, trường hợp kiểm tra đảm bảo rằng chế độ xem có id, R.id.view tồn tại và được đặt một phần phía trên chế độ xem có id, R.id.target_view

isPartiallyBelow ()

Chấp nhận trình so khớp chế độ xem mục tiêu và trả về xác nhận chế độ xem, điều này đảm bảo rằng trình so khớp chế độ xem (thực tế) tồn tại và được đặt một phần bên dưới trình so khớp chế độ xem mục tiêu.

onView(withId(R.id.view)) .check(isPartiallyBelow(withId(R.id.target_view)))

Ở đây, trường hợp kiểm tra đảm bảo rằng chế độ xem có id, R.id.view tồn tại và được đặt một phần bên dưới chế độ xem có id, R.id.target_view .

isPartiallyLeftOf ()

Chấp nhận trình so khớp chế độ xem mục tiêu và trả về xác nhận chế độ xem, điều này đảm bảo rằng trình so khớp chế độ xem (thực tế) tồn tại và được định vị một phần bên trái của trình so khớp chế độ xem mục tiêu.

onView(withId(R.id.view)) .check(isPartiallyLeftOf(withId(R.id.target_view)))

Ở đây, trường hợp kiểm tra đảm bảo rằng chế độ xem có id, R.id.view tồn tại và được định vị một phần bên trái của chế độ xem có id, R.id.target_view .

isPartiallyRightOf ()

Chấp nhận trình đối sánh chế độ xem mục tiêu và trả về xác nhận chế độ xem, điều này đảm bảo rằng trình đối sánh chế độ xem (thực tế) tồn tại và được đặt một phần bên phải của trình đối sánh chế độ xem mục tiêu

onView(withId(R.id.view)) .check(isPartiallyRightOf(withId(R.id.target_view)))

Ở đây, trường hợp kiểm tra đảm bảo rằng chế độ xem có id, R.id.view tồn tại và được định vị một phần bên phải của chế độ xem có id, R.id.target_view .

isRightAlignedWith ()

Chấp nhận trình so khớp chế độ xem mục tiêu và trả về xác nhận chế độ xem, điều này đảm bảo rằng trình so khớp chế độ xem (thực tế) tồn tại và được căn chỉnh phù hợp với trình so khớp chế độ xem mục tiêu.

onView(withId(R.id.view)) .check(isRightAlignedWith(withId(R.id.target_view)))

Ở đây, trường hợp kiểm tra đảm bảo rằng chế độ xem có id, R.id.view tồn tại và được căn chỉnh phù hợp với chế độ xem có id, R.id.target_view .

isTopAlignedWith ()

Chấp nhận trình so khớp chế độ xem mục tiêu và trả về xác nhận chế độ xem, điều này đảm bảo rằng trình so khớp chế độ xem (thực tế) tồn tại và được căn chỉnh trên cùng với trình so khớp chế độ xem mục tiêu.

onView(withId(R.id.view)) .check(isTopAlignedWith(withId(R.id.target_view)))

Ở đây, trường hợp kiểm tra đảm bảo rằng chế độ xem có id, R.id.view tồn tại và được căn chỉnh trên cùng với chế độ xem có id, R.id.target_view

noEllipsizedText ()

Trả về một xác nhận dạng xem, điều này đảm bảo rằng hệ thống phân cấp dạng xem không chứa dạng xem văn bản được chia nhỏ hoặc bị cắt bỏ.

onView(withId(R.id.view)) .check(noEllipsizedText());

noMultilineButtons ()

Trả về xác nhận dạng xem, đảm bảo rằng hệ thống phân cấp dạng xem không chứa các nút nhiều dòng.

onView(withId(R.id.view)) .check(noMultilineButtons());

noOverlaps ()

Trả về xác nhận chế độ xem, đảm bảo rằng đối tượng con có thể gán cho TextView hoặc ImageView không chồng chéo nhau. Nó có một tùy chọn khác, chấp nhận trình đối sánh chế độ xem mục tiêu và trả về xác nhận chế độ xem, điều này đảm bảo rằng chế độ xem con cháu khớp với chế độ xem mục tiêu không trùng lặp.