กรอบการทดสอบ 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())