4 Suit Test

Suit Test หรือที่เรียกว่าการเทสเป็นชุด ( suit กับ ชุด ไม่เหมือนกันนะ เอ๊ะ หรือเหมือน ? เอาไว้ก่อนละกัน ) คืองี้นะครับ ทั้ง 2 เทสที่เราเขียนมานะ เวลาเราจะเทสก็ต้องรันทีละอัน คราวนี้ ถ้าโปรแกรมมันใหญ่ขึ้น มีเทสมากขึ้น อาจมีเป็นร้อยๆ เคส จะให้มานั่งรันเทสทีละตัวก็ไม่ไหวใช่ไหมครับ ดังนั้นมาลองดูวิธีแพกเทสเคสหลายๆคลาสเข้าด้วยกันว่าทำยังไงได้บ้าง





จากรูปจะเห็นว่าเราได้สร้างคลาสใหม่ขึ้นมาอีกคลาสหนึ่ง ชื่อ CompositeTest.java ซึ่งคลาสนี้ว่างเปล่าไม่มีอะไรเลย แต่เราบอก Junit ไป 2 อย่างคือ

@RunWith(value = Suite.class)

@RunWith เป็น annotation ที่ Junit สร้างมาให้เราใช้ เพื่อให้เราเอาไว้บอก Junit ว่าจะต้องทำงานยังไง

แล้ว annotation มันคืออะไร ?  มันก็คือ รูปแบบหนึ่งของ metadata
เอาแล้วไง ! ผมว่าล่ะ โอเค แล้ว metadata มันคืออะไรอีกง่ะ ? metadata คือข้อมูลของข้อมูล
หมายความว่า สำหรับข้อมูลหนึ่งๆ มันจะมีความหมายของมันอีกที. ดังนั้น Annotation คือคือการให้ความหมาย อาจจะคล้ายๆรหัสก็ว่าได้ แล้วโปรแกรม ( Junit ) จะเอาไปแปลอีกที ยกตัวอย่างอีกนิดหน่อยเช่น @Overrided มีความหมายสำหรับ จาวาคอมไพล์เลอร์ แต่ไม่มีความหมายในวันวาเลนไทน์ อุ๊ย+

 แล้วข้างในวงเล็บที่ว่า value = Suite.class ก็คือ Suit นะครับ มันจะเป็น container สำหรับบรรจุเทสเคสหลายๆคลาสไว้ด้วยกัน

และอันสุดท้ายที่เราบอก Junit ก็คือ @SuiteClasses ซึ่งจะบอกว่าคลาสไหนที่จะเอามาแพกไว้เพื่อรอสำหรับการเทส

ซอสโค๊ดสำหรับ CompositeTest.java


ทดสอบความกล้าหาญ

คุณลองสร้างคลาสมาอีกอันชื่อ SuperComposite.java แล้วใส่ CompositeTest.java ที่สร้างในตัวอย่างนี้เข้าไปอีกที