Screen Shot 2558-03-12 at 11.44.41 AM
การเขียน unit test บน Android application นั้น
พูดได้เลยว่ายากมากๆ และหลายๆ คนอาจจะบอกว่า มันไร้ค่ามาก !!
แต่ในปัจจุบันการเขียน unit test นั้น
ถือว่าเป็นสิ่งหลักที่ทาง developer ควรเรียนรู้ และ นำไปใช้งานนะ

ดังนั้นมาดูกันว่าใน Android application เราจะเขียน unit test กันอย่างไรดี ?

Software Requirement

  • Android Studio 1.2
  • Gradle 2.2
  • Java 8

สิ่งที่ต้องการ

ใน Android project นั้นต้องการแยก code
ระหว่าง Android application และ Unit test อออกจากกัน
เพื่อทำให้ code แยกออกจากกันชัดเจน
ดังนั้น ใน Android project จะประกอบไปด้วย

  • Android application ชื่อว่า app
  • Java library ชื่อว่า unittest

โดย Library ที่จะใช้เพื่อเขียน unit test บน Android application ประกอบไปด้วย

  • JUnit 4  เป็นตัวหลักในการเขียน unit test
  • Mockito 1.9.5 สำหรับการ mocking object
  • Robolectric 2.2 ตัวเสริมของการทดสอบ Android

มาดูขั้นตอนการสร้าง Android Project กันดีกว่า

1. สร้าง Android project ใน Android Studio ปกติ
โดยผมตั้งชื่อว่า MyApplication
โดยใน project จะมี Android application ชื่อว่า app มาให้ (เปลี่ยนได้นะ)

2. จากนั้นให้ทำการสร้าง Module ใหม่ ให้เป็น Java Library นะ
ตั้งชื่อว่า unittest
มีไว้สำหรับเขียน unit test นะครับ
แสดงดังรูป

Screen Shot 2558-03-11 at 5.16.05 PM

เมื่อทำการสร้าง Java Library เรียบร้อยแล้ว
Android project จะมีโครงสร้างดังนี้

Screen Shot 2558-03-11 at 5.19.48 PM

3. มาทำการ config กันต่อดีกว่า
สิ่งที่เราต้องทำการ config คือ Java Library ชื่อว่า unittest
เพื่อให้ทำการ reference ไปยัง Android application ชื่อว่า app
และให้ทำการ import พวก library ที่เราต้องการคือ

  • JUnit 4
  • Mockito 1.9.5
  • Robolectric 2.2

ให้ทำการ config ในไฟล์ unittest/build.gradle ดังนี้

4. สร้าง Test case ใน unittest แบบง่ายๆ
โดยสร้าง test case ด้วย JUnit นี่เอง ชื่อว่า HelloTest.java
ให้สังเกตว่าไฟล์ HelloTest.java จะอยู่ใน folder src/test/java นะครับ
ดังรูป

Screen Shot 2558-03-11 at 5.30.35 PM

5. ทำการ run Gradle เพื่อทดสอบ
ด้วยคำสั่ง
$gradle test

จะแสดงผลการทำงานดังนี้

Screen Shot 2558-03-11 at 5.35.33 PM

และสามารถดูผลการทำงานของ Unit test แบบสวยๆ ในรูปแบบ HTML
แสดงผลดังนี้
result

โดยที่ code ตัวอย่างผมเอาขึ้นไว้ที่ Github:Up1

ขอต้อนรับเข้าสู่โลกแห่งการทดสอบของ Android application
ต่อไปมาเขียน unit test เพื่อทดสอบและสร้างระบบกันครับ