กรอบการทดสอบ Espresso - ดูการดำเนินการ

ดังที่ได้เรียนรู้ไว้ก่อนหน้านี้การดูการดำเนินการจะทำให้การกระทำทั้งหมดที่เป็นไปได้โดยอัตโนมัติทำได้โดยผู้ใช้ในแอปพลิเคชัน Android Espresso onViewและ“ onData” มีวิธีการดำเนินการซึ่งยอมรับการดำเนินการของมุมมองและเรียกใช้ / ดำเนินการอัตโนมัติของผู้ใช้ที่เกี่ยวข้องในสภาพแวดล้อมการทดสอบ ตัวอย่างเช่น "click ()" เป็นการดำเนินการดูซึ่งเมื่อส่งผ่านไปยังเมธอด onView ( R.id.myButton ) .perform (click ())จะเริ่มการทำงานของเหตุการณ์การคลิกของปุ่ม (ด้วย id:“ myButton” ) ในสภาพแวดล้อมการทดสอบ

ในบทนี้ให้เราเรียนรู้เกี่ยวกับการดำเนินการมุมมองที่จัดทำโดยกรอบการทดสอบเอสเปรสโซ

typeText ()

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

onView(withId(R.id.text_view)).perform(typeText("Hello World!"))

typeTextIntoFocusedView ()

typeTextIntoFocusedView ()คล้ายกับtypeText ()ยกเว้นว่าจะวางข้อความไว้ข้างตำแหน่งเคอร์เซอร์ในมุมมอง

onView(withId(R.id.text_view)).perform(typeTextIntoFocusedView("Hello World!"))

แทนที่ข้อความ ()

replaceText ()คล้ายกับtypeText ()ยกเว้นว่าจะแทนที่เนื้อหาของมุมมอง

onView(withId(R.id.text_view)).perform(typeTextIntoFocusedView("Hello World!"))

clearText ()

clearText ()ไม่มีอาร์กิวเมนต์และส่งคืนแอ็คชันมุมมองซึ่งจะล้างข้อความในมุมมอง

onView(withId(R.id.text_view)).perform(clearText())

pressKey ()

pressKey ()ยอมรับรหัสคีย์ (เช่น KeyEvent.KEYCODE_ENTER) และส่งคืนแอ็คชันมุมมองซึ่งจะกดคีย์ที่สอดคล้องกับรหัสคีย์

onView(withId(R.id.text_view)).perform(typeText(
   "Hello World!", pressKey(KeyEvent.KEYCODE_ENTER))

pressMenuKey ()

pressMenuKey ()ไม่มีอาร์กิวเมนต์และส่งคืนแอ็คชันมุมมองซึ่งจะกดปุ่มเมนูฮาร์ดแวร์

onView(withId(R.id.text_view)).perform(typeText(
   "Hello World!", pressKey(KeyEvent.KEYCODE_ENTER), pressMenuKey())

closeSoftKeyboard ()

closeSoftKeyboard ()ไม่มีอาร์กิวเมนต์และส่งคืนแอ็คชันมุมมองซึ่งจะปิดแป้นพิมพ์หากเปิดอยู่

onView(withId(R.id.text_view)).perform(typeText(
   "Hello World!", closeSoftKeyboard())

คลิก()

click ()ไม่มีอาร์กิวเมนต์และส่งกลับการดำเนินการดูซึ่งจะเรียกใช้การคลิกของมุมมอง

onView(withId(R.id.button)).perform(click())

ดับเบิลคลิก()

doubleClick ()ไม่มีอาร์กิวเมนต์และส่งกลับแอ็คชันมุมมองซึ่งจะเรียกใช้แอ็คชันดับเบิลคลิกของมุมมอง

onView(withId(R.id.button)).perform(doubleClick())

longClick ()

longClick ()ไม่มีอาร์กิวเมนต์และส่งคืนแอ็คชันมุมมองซึ่งจะเรียกใช้การคลิกแบบยาวของมุมมอง

onView(withId(R.id.button)).perform(longClick())

กดกลับ ()

pressBack () ไม่มีอาร์กิวเมนต์และส่งคืนแอ็คชันมุมมองซึ่งจะคลิกปุ่มย้อนกลับ

onView(withId(R.id.button)).perform(pressBack())

pressBackUnconditionally ()

pressBackUnconditionally ()ไม่มีอาร์กิวเมนต์และส่งกลับแอ็คชันมุมมองซึ่งจะคลิกปุ่มย้อนกลับและจะไม่เกิดข้อยกเว้นหากการดำเนินการปุ่มย้อนกลับออกจากแอปพลิเคชันเอง

onView(withId(R.id.button)).perform(pressBack())

เปิดลิ้งค์()

openLink ()มีสองอาร์กิวเมนต์ อาร์กิวเมนต์แรก (ข้อความลิงก์) เป็นประเภทMatcherและอ้างถึงข้อความของแท็กจุดยึด HTML อาร์กิวเมนต์ที่สอง (url) เป็นประเภทMatcherและอ้างถึง url ของแท็กจุดยึด HTML ใช้ได้กับTextViewเท่านั้น ส่งคืนแอ็คชันมุมมองซึ่งรวบรวมแท็กจุดยึด HTML ทั้งหมดที่มีอยู่ในเนื้อหาของมุมมองข้อความค้นหาแท็กจุดยึดที่ตรงกับอาร์กิวเมนต์แรก (ข้อความลิงก์) และอาร์กิวเมนต์ที่สอง (url) และในที่สุดก็เปิด url ที่เกี่ยวข้อง ให้เราพิจารณามุมมองข้อความที่มีเนื้อหาเป็น -

<a href="http://www.google.com/">copyright</a>

จากนั้นสามารถเปิดและทดสอบลิงก์โดยใช้กรณีทดสอบด้านล่าง

onView(withId(R.id.text_view)).perform(openLink(is("copyright"),
   is(Uri.parse("http://www.google.com/"))))

ที่นี่ openLink จะรับเนื้อหาของมุมมองข้อความค้นหาลิงก์ที่มีลิขสิทธิ์เป็นข้อความwww.google.comเป็น url และเปิด url ในเบราว์เซอร์

openLinkWithText ()

openLinkWithText ()มีหนึ่งอาร์กิวเมนต์ซึ่งอาจเป็นประเภท ** String * หรือ Matcher เป็นเพียงการตัดวิธีการopenLink * ให้สั้นลง

onView(withId(R.id.text_view)).perform(openLinkWithText("copyright"))

openLinkWithUri ()

openLinkWithUri ()มีหนึ่งอาร์กิวเมนต์ซึ่งอาจเป็นประเภทStringหรือ Matcher เป็นเพียงการตัดวิธีการopenLink * ให้สั้นลง

onView(withId(R.id.text_view)).perform(openLinkWithUri("http://www.google.com/"))

pressImeActionButton ()

pressImeActionButton ()มีการขัดแย้งใดและผลตอบแทนการกระทำมุมมองที่จะดำเนินการชุดการดำเนินการในหุ่นยนต์: imeOptionsการกำหนดค่า ตัวอย่างเช่นถ้าandroid: imeOptionsเท่ากับ actionNext สิ่งนี้จะย้ายเคอร์เซอร์ไปที่มุมมองEditTextถัดไปที่เป็นไปได้ในหน้าจอ

onView(withId(R.id.text_view)).perform(pressImeActionButton())

scrollTo ()

scrollTo ()ไม่มีอาร์กิวเมนต์และส่งกลับแอ็คชันมุมมองซึ่งจะเลื่อน scrollView ที่ตรงกันบนหน้าจอ

onView(withId(R.id.scrollView)).perform(scrollTo())

เลื่อนลง()

SwipeDown ()ไม่มีอาร์กิวเมนต์และส่งกลับแอ็คชันมุมมองซึ่งจะเริ่มการทำงานแบบปัดลงบนหน้าจอ

onView(withId(R.id.root)).perform(swipeDown())

ปัดขึ้น()

SwipeUp ()ไม่มีอาร์กิวเมนต์และส่งคืนแอ็คชันมุมมองซึ่งจะเริ่มการดำเนินการปัดขึ้นบนหน้าจอ

onView(withId(R.id.root)).perform(swipeUp())

รูดขวา ()

SwipeRight ()ไม่มีอาร์กิวเมนต์และส่งคืนแอ็คชันมุมมองซึ่งจะเริ่มการดำเนินการปัดไปทางขวาบนหน้าจอ

onView(withId(R.id.root)).perform(swipeRight())

ปัดไปทางซ้าย()

SwipeLeft ()ไม่มีอาร์กิวเมนต์และส่งคืนแอ็คชันมุมมองซึ่งจะเริ่มการทำงานโดยปัดไปทางซ้ายบนหน้าจอ

onView(withId(R.id.root)).perform(swipeLeft())