Framework คือโค๊ดชุดหนึ่ง เป็นเสมือนเครื่องมือให้เราเอาไว้ใช้ในโปรเจก แต่ Framework ต่างจากชุดเครื่องมือตรงที่ จะมีโครงสร้างที่ดีกว่า ง่ายกว่า ที่นอกเหนือไปจากกล่องเครืองมือเพียงอย่างเดียว
อาจมองง่ายๆว่า Toolkits คือกล่องเครื่องมือ และอุปกรต่อเรือ แต่ Framework คืออู่ต่อเรือที่มีเครื่องมืออยู่พร้อม
ซึ่งนอกจากจะมีเครื่องมือแล้ว ยังแบ่งพื้นที่เป็นสัดส่วน เช่น ที่พักเรือ ที่ต่อเรือ ที่เก็บเรือ ฯลฯ (ผมก็ไม่เคยเห็ยอู่ต่อเรือเหมือนกัน แต่มโนเอา )
Junit แม้จะไม่ใช่เพกเกจมาตรฐานของจาวา แต่ก็อาจเรียกได้ว่าเป็นที่ยอมรับกันโดยทั่วไป
Unit test คือการทดสอบในหน่วยที่เล็กที่สุด ที่ไม่เกี่ยวข้องกับยูนิตอื่นๆ
Integration test คือการทดสอบเมื่อแต่ละยูนิตทำงานร่วมกัน
การที่ Junit จะทำงานได้คลาสที่เขียนเทสต้องเป็น public และมี no - arg constructor หรือก็คือ default constructor นั่นเอง
Junit จะทำการสร้าง oject ของเทสคลาส (Test class คลาสที่เราเขียนไว้สำหรับ Junit ในตัวอย่างนี้คือ FactorialTest.java) ก่อนจะเรียก @Test แต่ละอัน. ทั้งนี้จะช่วยปกป้องในเรื่องการใช้ object ของ target ร่วมกัน. หมายความว่า @Test แต่ละตัวจะทำการทดสอบโค๊ดจาก object ของใครของมัน ไม่เกี่ยวกันกับ @Test อื่น
ฟังก์ชั่น | การทำงาน |
---|---|
assertArrayEquals("Error message to show" , A , B ) | ทดสอบการเท่ากันของอาเรย์ |
assertEquals("Error message to show", A, B) | ทดสอบการเท่ากันของ object A กับ object B โดยจะทำการเรียก equals() ฟังก์ชั่นจากA และผ่าน B เป็นพารามิเตอร์ |
assertSame("Error message to show", A, B) | ทดสอบ Object A และ Object B ว่าเป็นอันเดียวกันหรือไม่ ฟังก์ชั่นนี้จะเรียกใช้เครื่องหมาย == |
assertTrue("Error message to show", A) | ทดสอบว่า A มีค่าเป็น true หรือไม่ |
assertNotNull("Error message to show", A) | ทดสอบว่า A มีค่าเป็น null หรือไม่ |
ในโพสต่อไปเราจะมาดูวิธีการเทสหลายๆค่า หลายๆคลาสกันครับ และยังมีสิ่งที่เราควรรู้ จะค่อยเอาลงทีละนิดพร้อมกับโค๊ดที่เราจะทำกันครับ