การสร้าง JUnit ด้วย Eclipse
การใช้ JUnit ในการ Test โปรแกรม ระดับ Unit Test เป็นการ Test function อย่างง่ายๆ
1. ก่อนอื่นเปิด Eclipse
2. เมื่อเข้ามาโปรแกรม แล้ว ก็สร้างโปรเจกใหม่ ตั้งชื่อได้ตามสบายเลย
3. เสร็จแล้ว คลิกขวาที่ Root Node ใน Package Explorer ที่ชื่อ
ForJUnitTest??(อันนี้ชื่อโปรเจกผมตั้งเอง) เลือก New -> Class เพื่อสร้างคลาสสำหรับทดสอบ
ตั้งชื่อคลาส แล้วก้อคลิกที่ Finish เลย
4. ที่
MyClass??.java ให้พิมพ์ method สำหรับทดสอบดังนี้ (สุดท้ายก็หนีไม่พ้น Hello World 555+ )
5. ทีนี้เราก็จะได้คลาส สำหรับทดสอบแล้ว นั่นคือ เราจะดูว่า มัน return ค่าออกมาเป็นคำว่า "Hello World" รึเปล่า ช่วงต่อไปถึงเวลาทดสอบละ คลิกที่
ForJUnitTest?? เลือก New -> JUnit Test Case
ตั้งชื่อ
TestMyClass?? (สังเกตว่ามี Test นำหน้า) แล้วก้อเลือกเครื่องหมายถูก ที่ setUp() กับ tearDown() เพื่อ implement method จาก super class ชื่อ
TestCase??
อธิบายซักนิส
setUp() คือ method ที่ ใช้สำหรับเตรียมการ class object หรือ method เพื่อทำการทดสอบ คล้ายๆกะ Init.. อะไรประมาณนั้น
tearDown() คือ method ที่ใช้สำหรับ สิ้นสุดการ Test คล้ายๆกับ destructure อะไรประมาณนั้นหละ เช่นถ้าเราเปิดการเชื่อมต่ออะไรอยู่ เช่น IO ในการ Test เราก้อ มา close IO ได้ที่ tearDown หรือไม่ก็ทำให้ object เป็น null
สังเกตว่า Eclipse มันจะเตือน โดยขีดเส้นใต้สีแดงๆ ที่ junit แสดงว่าในโปรเจกเรา ยังไม่มี Library ของ JUnit มา Reference
6. เพราะฉะนั้น เรามา Add Reference กันก่อน คลิกขวาที่
ForJUnitTest?? เลือก Properties แ้ล้วจะมีรูปขึ้นมาตามรูปข้างล่าง
แล้วก้อเ้ลือก หมวด Java Build Path ด้านขวามือคลิกที่ Add Library
7. เลือก JUnit คลิก Next เลือก JUnit 3 คลิก Finish
8. ทีนี้เราก็จะได้ Library JUnit 3 อยู่ในโปรเจกเราแล้ว เส้นเตือนสีแดงๆก็จะหายไป
9. ทีนี้เราจะลองมาเขียน function สำหรับ Test กัน ให้เขียน code เพิ่มตามรูป
อธิบายซักนิด จะเห็นว่าเราสร้าง method ใหม่ขึ้นที่ คลาส
TestMyClass?? สำหรับ test method ชื่อ say ใน
MyClass?? เราเลยตั้งชื่อ โดยเพิ่ม prefix คำว่า "test" ข้างหน้า ว่า testSay
และใช้ method ชื่อ assertEqual(expected,actual) parameter แรก คือ ค่าที่คาดหวังไว้ parameter ที่สองคือ ค่าจริงๆที่เกิดจากการ test เพราะฉะนั้น ต้องใส่เป็น
assertEquals("Hello Word",someClass.say());
ค่าจริงๆ จากการ เรียก method someClass.say() นั่นเอง
10. ทีนี้เราจะลอง run ดู คลิกตามรูป เลือก Run As -> JUnit Test ถ้ามีหน้าต่างขึ้นมาถามว่าจะ Test File ไหนบ้างก็เลือก
MyClass??.java และคลิก OK
11. จะได้ผลลัพธ์ ดังรูป
อธิบายซักนิด
1 คือ จำนวน Method ทั้งหมดที่เราทำการ Test
2 คือ List รายการ การ Test ว่ามี Method ชื่อไรบ้าง
3 คือส่วนที่แสดงรายละเอียด การ Test
สังเกตว่าจะเป็นแถบสีแดง นั่นคือ เรา Test ไม่ผ่านนั่นเอง
12. ทีนี้เราจะมาดูว่า มัน error ตรงไหน รายละเอียดเป็นยังไงก็คลิกที่ บริเวณหมายเลข 3 ในรูปข้างบน ที่ List จะบอกรายละเอียด error ดังรูปข้างล่าง
13. เมื่อเรากลับไปแก้ การ return ค่าใน method say() ที่คลาส
MyClass?? จาก "Hello World" เป็น "Hello Word" จะ Test ผ่าน เป็นแถบสีเขียวดังรูปข้างล่าง
References