Quantcast
Channel: cc :: somkiat
Viewing all articles
Browse latest Browse all 1997

สวัสดีกับ Espresso Test Recorder สำหรับการทดสอบ Android App

$
0
0

espresso-00

espresso-00 ใน Android Studio 2.2 Preview 3 นั้น ได้ปล่อย Espresso Test Recorder ใน Beta version ให้ลองใช้งานแล้ว ซึ่งเป็นความสามารถที่ขี้โม้ไว้ในงาน Google I/O 2016 นั่นแสดงว่า เราสามารถบันทึกการทดสอบ Android App ง่าย ๆ ด้วยการใช้งาน App แบบปกติ โดยผลที่ได้คือ ชุด code ของการทดสอบแบบอัตโนมัติ ซึ่งเราสามารถทำการแก้ไขได้อีกด้วย แต่ก็มีข้อจำกัดพอสมควร !! ดังนั้นมาทดสอบใช้งานกันดีกว่า เริ่มด้วย code ตัวอย่างแนะนำให้ใช้ Android Testing Codelab [code] git clone https://github.com/googlecodelabs/android-testing.git -b step-7 [/code] จากนั้นทำการเปิด project ด้วย Android Studio 2.2 Preview 3 ซึ่งเราสามารถใช้งานผ่านเมนู Run -> Record Espresso Test แสดงดังรูป espresso-01 จะขึ้นหน้าจอ Record Your Test ขึ้นมาดังรูป espresso-02 จะรอช้าอยู่ทำไมบันทึกสิครับ ให้ทำการเล่น App นั่นเอง จะขึ้นผลการบันทึกดังรูป espresso-03 เมื่อเล่นครบ Flow การทำงานของ App แล้ว ให้กดที่ปุ่ม Add Assertion เพื่อตรวจสอบว่า App ทำงานได้อย่างถูกต้องตามที่คาดหวังหรือไม่ ? จะแสดงการทำงานดังรูป espresso-04 จากนั้นทำการเลือก Element ที่ต้องการจะตรวจสอบ ดังรูป espresso-05 เมื่อเราพอใจแล้วให้ทำการบันทึก และ จบการทำงาน จะให้เรากำหนดชื่อ class ของ Espresso Test ดังรูป espresso-06 สุดท้ายแล้วจะได้ code ดังรูป ถ้าใครไม่เคยเขียน Espresso Test มาก่อนน่าจะมึนงงพอสมควร !! [gist id="c6e60fcb85c9be3086b25a5bd2f17825" file="NotesActivityTest.java"] จากนั้นให้ทำการทดสอบด้วยคำสั่ง [code] $./gradlew cAT [/code] ทุกอย่างผ่านเรียบร้อย !!! มันง่ายมาก ๆ นะ

ดังนั้นมาสรุปผลจากการทดลองใช้แบบคร่าว ๆ กันดีกว่า

เริ่มด้วยความช้า และ การกิน Memory ซึ่งถือเป็นเรื่องปกติของ UI Testing ดังนั้นใช้เท่าที่จำเป็นเท่านั้น ในแต่ละ Test class จะมีเพียง method หรือ test case เดียวเท่านั้น ซึ่งถือว่าเป็นเรื่องที่ดีเลยนะ ทำให้จัดการ test ได้ง่ายขึ้น สามารถใช้เฉพาะ code ที่เขียนอยู่ใน App ของเราเท่านั้นนะครับ เนื่องจาก Espresso Test มันสร้างมาจาก Instrumented Test ยังไม่สามารถใช้งานกับ WebView ได้ จากการใช้งานมันไม่สามารถจัดการ input ใน WebView และใส่ assertion ได้ ใช้ Assertion แบบพื้นฐานเท่านั้น ส่วนที่ซับซ้อนต้องมาเขียน code เอาเองนะ ส่วน feature อื่น ๆ เช่นพวก Idling resources ก็ต้องเขียนเองนะ

แต่สิ่งที่เห็นได้ชัดคือ

ช่วยให้เราเขียนชุดการทดสอบผ่าน UI Test ง่ายและสะดวกขึ้นเป็นอย่างมาก
จะได้ไม่มีข้ออ้างสำหรับการไม่เขียน test อีกแล้วนะ
และหวังว่าจะปรับปรุงความสามารถนี้ให้ดียิ่ง ๆ ขึ้นไป สำหรับใครที่เขียนเอง จะรู้สึกว่า ทำไมต้องมาใช้ความสามารถนี้ก็เป็นได้ เพราะว่า เขียนเองเร็วกว่าเยอะ !! แต่ถ้ามองในความสะดวกเริ่มจะสูสีกับ UI Test ของ XCode แล้วนะ ปล. ไม่ต้องคิดมากนะครับ เอกสารของ Espresso Test Recorder !! น่าจะทำการแก้ไขเร็ว ๆ นี้นะ espresso-07 Reference Website http://peirr.com/writing-android-tests-with-espresso-test-recorder/

Viewing all articles
Browse latest Browse all 1997

Trending Articles