เนื่องจากเนื้อหาในงาน Google I/O 2016 Extended Bangkok มันเยอะมาก ๆ
ดังนั้นจึงแยกเนื้อหาออกเป็น 2 ส่วน
ซึ่งใน blog นี้จะสรุปเรื่องต่าง ๆ ดังนี้
มาเริ่มกันเลย
1. UI Testing สำหรับ Android App ด้วย Espresso
เป็น session หนึ่งที่ตั้งใจมาฟังอย่างมาก
เพราะว่า เป็นสิ่งที่สนใจและใช้งานประจำสำหรับการทดสอบ Android App
โดยชอบคำพูดนี้มาก ๆ คือ
Espresso นั้นถูกสร้างขึ้นมา
เพื่อส่งเสริมให้นักพัฒนาเขียนชุดการทดสอบสำหรับ App นั่นเอง
โดยทางทีมพัฒนา Android นั้นได้แยกการทดสอบออกมาเป็นอีก library
ชื่อว่า Android Testing Support Library (ATSL)
เพื่อช่วยทำให้ App มีคุณภาพที่ดีขึ้น ประกอบไปด้วย
- UI Automator สำหรับการทดสอบการทำงานระหว่าง App และ System ของ device
- Espresso สำหรับการทดสอบใน App นั้น ๆ
- AndroidJUnitRunner เป็น Test Runner สำหรับ Android App ซึ่งทำการ custom มาจาก JUnit
มาดูรายละเอียดของ Espresso กันว่าเป็นอย่างไรบ้าง ?
โดยจะทำงานผ่าน Instrumentation
ซึ่งจะทำการ hook เข้าไปยัง Lifecycle ของ Activity
ทำให้เราสามารถทดสอบได้นั่นเอง
Espresso มีส่วนการทำงานหลัก 3 ส่วนคือ
- View matcher สำหรับค้นหา element ต่าง ๆ ใน view
- View action สำหรับกระทำกับ element ต่าง ๆ ใน view เช่น การกดปุ่ม เป็นต้น
- View assertion สำหรับการตรวจสอบผลการทำงาน เช่น ข้อความที่แสดงใน TextView เป็นต้น
และยังอธิบายอีกด้วยว่า Library แต่ละตัวของ Espresso นั้นใช้ทำอะไรบ้าง
//เป็น library หลักของ Espresso androidTestCompile "com.android.support.test.espresso:espresso-core //สำหรับทดสอบพวก DatePicker, RecyclerView, Drawer action ต่าง ๆ androidTestCompile "com.android.support.test.espresso:espresso-contrib //Intent Rule, validation และ stub ซึ่งช่วยให้จัดการ intent ได้อย่างง่ายและสะดวกสำหรับการทดสอบ และทำงานร่วมกับ Mockito androidTestCompile "com.android.support.test.espresso:espresso-intents //สำหรับการทำงานร่วมกับพวก backgroung job androidTestCompile "com.android.support.test.espresso:espresso-idling-resource //สำหรับทดสอบ WebView androidTestCompile 'com.android.support.test.espresso:espresso-web
จากนั้นทำการแนะนำวิธีการ Custom Error ของ Espresso
เพื่อช่วยทำให้ error ของ Espresso อ่านและเข้าใจได้ง่าย
โดยให้ทำการ implement จาก interface EspressoException
รวมทั้งแนะนำ Espresso Test Recorder อีกเล็กน้อย
ส่วนcode ตัวอย่างดูเพิ่มเติมได้จาก Android Coding Testlab
2. ทำความรู้จักกับ Firebase ว่าน่าสนใจบ้าง ? บอกเลยว่าเยอะมาก !!
ถือได้ว่าเป็นพระเอกของงาน Google I/O 2016 เลยก็ว่าได้
เป็นอีกหนึ่งการเปลี่ยนแปลงที่ส่งผลกระทบอย่างแรงต่อ Developer
เนื่องจากมีทุกสิ่งที่ Web และ Mobile application ต้องการ
ทั้ง Infrastructure
ทั้ง Service ต่าง ๆ
ทั้งการรองรับการขยายตัวของระบบ
ทั้งการทำงานแบบ cross platform
ทั้งการใช้งานที่ง่าย
ทั้งเอกสารที่แจ่ม ๆ และ ละเอียด
สำหรับ Android Studio ก็มี Firebase plugin ให้ใช้งานแบบง่าย ๆ อีกด้วย
ดังนั้นห้ามพลาดด้วยประการทั้งปวง
โดยมี feature แบ่งเป็นกลุ่มดังนี้
- Develop
- Grow
- Earn
- Analytic
ซึ่งมันเยอะมาก ๆ แสดงดังรูป (ลองไปใช้งานกันดูนะ)
ถ้า Developer คนไหนยังไม่ลองใช้งาน
แนะนำให้ลองไปใช้งานเถอะนะ
มันช่วยเหลือให้ชีวิตง่ายขึ้นเยอะเลย
ส่วน Slide ของงานนี้เขาเอาไปเก็บไว้ที่ Github:: Google I/O extended Bangkok