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

Android :: แนะนำ library สำหรับการเขียน UI Test ด้วย Espresso

$
0
0

การสร้างชุดการทดสอบแบบอัตโนมัติระดับ User Interface ของ Android app นั้น เป็นเรื่องที่สำคัญมาก ๆ โดยที่ทาง Android ก็ได้เตรียมเครื่องมือและ library ต่าง ๆ ไว้ให้ครบ ยกตัวอย่างเช่น Espresso และ UIAutomator เป็น ที่สำคัญยังมี opensource library อื่น ๆ อีก ไม่ว่าจะเป็น Appium และ Calabash ดังนั้นการสร้างชุดการทดสอบแบบอัตโนมัติจึงไม่ใช่เรื่องยากหรือเป็นไปไม่ได้เลย
แต่เหล่าทีมพัฒนามักไม่ชอบทำ !! ทำไมนะ ?

ปกติการเขียน UI Test ของ Android app นั้น

มักจะเขียนด้วย library ที่ชื่อว่า Espresso ซึ่งสามารถทดสอบ Android app ได้เกือบครบทั้งหมด การใช้งานก็ไม่ยาก ยกตัวอย่างด้วยภาษา Kotlin ดังนี้ [gist id="d12656c1a3236e9d90609aa15e83e066" file="1.kt"] คำอธิบาย ทำการตรวจสอบ element id=username ว่าแสดงผลหรือไม่ ทำการกดปุ่ม id=login_button ทำการกรอข้อมูล Hello ใน element id=name_field ทุกอย่างดูเป็นปกติ และทำงานได้ตามที่ต้องการ

แต่เมื่อการทดสอบเริ่มซับซ้อนขึ้น ขั้นตอนการทำงานมากขึ้น

ส่งผลทำให้ code ของ UI Test ที่เขียนขึ้นมานั้น อ่านลำบาก แก้ไขยาก ยิ่งจำนวน test case เยอะขึ้น ปัญหาก็ตามมาเพียบ ทำให้คนเขียนมักจะเป็น developer/programmer ทำให้งานเพิ่มอีกแล้ว แน่นอนว่า มันคือปัญหา classic สุด ๆ ยกตัวอย่างเช่น [gist id="d12656c1a3236e9d90609aa15e83e066" file="2.java"]

ดังนั้นเราน่าจะต้องการวิธีการใหม่ ๆ เข้ามาช่วยนะ

ยิ่งการพัฒนา Android นั้นมีทางเลือกทั้งภาษา Java และ Kotlin น่าจะทำให้เรามีทางเลือกมากขึ้น ซึ่งตอนนี้มีคนสร้าง library ด้วยภาษา Kotlin เพื่อทำให้การเขียน UI Test ด้วย Espresso ง่ายขึ้น ด้วยการเขียนในรูปภาษาที่ง่าย ๆ เป็น DSL หรือภาษาเฉพาะขึ้นมา จาก code ด้านบน ถ้าเราสามารถเขียนง่าย ๆ ด้วย DSL ง่าย ๆ แบบนี้ น่าจะทำให้การเขียน UI Test ง่ายและสนุกขึ้นหรือไม่ แน่นอนว่า ทำให้ง่ายได้อ่านขึ้นเยอะ รวมทั้งใคร ๆ ก็สามารถเขียนได้ ยกตัวอย่างเช่น [gist id="d12656c1a3236e9d90609aa15e83e066" file="3.kt"]

โดยมีคนทำ library ในรูปแบบนี้ให้ด้วยนะ

จึงนำมาแนะนำไว้ เผื่อว่าจะนำไปใช้กัน ประกอบไปด้วย จากทั้ง 3 ตัวนั้น Kakao น่าใช้งานสุด ซึ่งลองใช้งานก็ไม่ได้ยากอะไร แต่อาจจะติดตั้งยากขึ้นมาหน่อย ยิ่งถ้าต้องทดสอบระบบที่พัฒนาด้วยภาษา Java แล้ว ต้องทำให้ Android project สนับสนุนภาษา Kotlin ก่อนด้วยนะ ตัวอย่างของการเขียนด้วย Kakao [gist id="d12656c1a3236e9d90609aa15e83e066" file="4.kt"] ขอให้สนุกกับการ coding ครับ

Viewing all articles
Browse latest Browse all 1997

Trending Articles