การตรวจสอบการช่วยเหลือพิเศษ

การทดสอบการช่วยเหลือพิเศษช่วยให้คุณได้สัมผัสประสบการณ์การใช้งานแอปจากมุมมองของผู้ใช้ทั้งหมด รวมถึงผู้ใช้ที่มีความต้องการด้านการช่วยเหลือพิเศษ การทดสอบรูปแบบนี้สามารถเผยให้เห็นโอกาสในการทำให้แอปมีประสิทธิภาพและหลากหลายมากขึ้น

หน้านี้จะอธิบายวิธีเพิ่มการตรวจสอบการช่วยเหลือพิเศษลงในการทดสอบ Espresso ที่มีอยู่ ดูข้อมูลเพิ่มเติมเกี่ยวกับการช่วยเหลือพิเศษได้ที่คู่มือการช่วยเหลือพิเศษ

เปิดใช้การตรวจสอบ

คุณเปิดใช้และกำหนดค่าการทดสอบการช่วยเหลือพิเศษได้โดยใช้ AccessibilityChecks คลาส ดังนี้

Kotlin

import androidx.test.espresso.accessibility.AccessibilityChecks

@RunWith(AndroidJUnit4::class)
@LargeTest
class MyWelcomeWorkflowIntegrationTest {
    init {
        AccessibilityChecks.enable()
    }
}

Java

import androidx.test.espresso.accessibility.AccessibilityChecks;

@RunWith(AndroidJUnit4.class)
@LargeTest
public class MyWelcomeWorkflowIntegrationTest {
    @BeforeClass
    public void enableAccessibilityChecks() {
        AccessibilityChecks.enable();
    }
}

โดยค่าเริ่มต้น การตรวจสอบจะทำงานเมื่อคุณดำเนินการกับมุมมองใดก็ตามที่กำหนดไว้ใน ViewActions การตรวจสอบแต่ละครั้งจะรวมมุมมองที่ดำเนินการ รวมถึงมุมมองย่อยทั้งหมด คุณสามารถประเมินลำดับชั้นการแสดงผลทั้งหมดของหน้าจอระหว่าง การตรวจสอบแต่ละครั้งได้โดยส่ง true ไปยัง setRunChecksFromRootView(), ดังที่แสดงในข้อมูลโค้ดต่อไปนี้

Kotlin

AccessibilityChecks.enable().setRunChecksFromRootView(true)

Java

AccessibilityChecks.enable().setRunChecksFromRootView(true);

ระงับผลลัพธ์บางส่วน

หลังจากที่ Espresso ทำการตรวจสอบการช่วยเหลือพิเศษในแอปแล้ว คุณอาจพบโอกาสหลายอย่างในการปรับปรุงการช่วยเหลือพิเศษของแอปที่คุณไม่สามารถดำเนินการได้ทันที คุณสามารถละเว้นผลลัพธ์เหล่านี้ชั่วคราวเพื่อไม่ให้การทดสอบ Espresso ล้มเหลวอย่างต่อเนื่อง Accessibility Test Framework (ATF) มีฟังก์ชันนี้โดยใช้วิธี setSuppressingResultMatcher() ซึ่งจะสั่งให้ Espresso ระงับผลลัพธ์ทั้งหมดที่ตรงกับนิพจน์ Matcher ที่ระบุ

เมื่อคุณทำการเปลี่ยนแปลงในแอปที่แก้ไขปัญหาการช่วยเหลือพิเศษด้านหนึ่ง การที่ Espresso แสดงผลลัพธ์สำหรับการช่วยเหลือพิเศษด้านอื่นๆ ให้ได้มากที่สุดจะเป็นประโยชน์ ด้วยเหตุนี้ คุณจึงควรระงับเฉพาะโอกาสที่ทราบและเฉพาะเจาะจงในการปรับปรุง

เมื่อคุณระงับผลการทดสอบการช่วยเหลือพิเศษชั่วคราวซึ่งวางแผนที่จะแก้ไขในภายหลัง คุณต้องไม่ระงับผลลัพธ์ที่คล้ายกันโดยไม่ได้ตั้งใจ ด้วยเหตุนี้ ให้ใช้ Matcher ที่มีขอบเขตแคบ โดยเลือก Matcher เพื่อให้ Espresso ระงับผลลัพธ์ที่ระบุไว้ก็ต่อเมื่อผลลัพธ์นั้นตรงตามการตรวจสอบการช่วยเหลือพิเศษแต่ละ รายการต่อไปนี้

  1. การตรวจสอบการช่วยเหลือพิเศษบางประเภท เช่น การตรวจสอบขนาดเป้าหมายการแตะ
  2. การตรวจสอบการช่วยเหลือพิเศษที่ประเมินองค์ประกอบ UI ที่เฉพาะเจาะจง เช่น ปุ่ม

ATF กำหนด Matcher หลายรายการ เพื่อช่วยคุณกำหนดผลลัพธ์ที่จะแสดงในการทดสอบ Espresso ตัวอย่างต่อไปนี้จะระงับผลลัพธ์ของการตรวจสอบที่เกี่ยวข้องกับคอนทราสต์สีขององค์ประกอบ TextView รายการเดียว โดยองค์ประกอบนี้มีรหัสเป็น countTV

Kotlin

AccessibilityChecks.enable().apply {
        setSuppressingResultMatcher(
                allOf(
                    matchesCheck(TextContrastCheck::class.java),
                    matchesViews(withId(R.id.countTV))
                )
        )
}

Java

AccessibilityValidator myChecksValidator =
    AccessibilityChecks.enable()
        .setSuppressingResultMatcher(
            allOf(
                matchesCheck(TextContrastCheck.class),
                matchesViews(withId(R.id.countTV))));