การทำยูนิตเทสต์ด้วยจาวา ควรจะแยกเทสต์เคส (Test Case) ที่ต้องติดต่อข้ามโปรเจคท์ หรือข้ามคอมโพเนนท์ ไปเป็นอินทิเกรชั่นเทสต์ แทนยูนิตเทสต์ ถึงแม้จะใช้เจยูนิตในการทำก็ตาม เพราะโดยส่วนมากอินทิเกรชั่นเทสต์นั้นจะใช้เวลานานกว่า ไม่เหมาะที่จะรันบ่อยๆ
เมเว่น (Maven) ได้กำหนดเฟสการเทสต์ 2 แบบนี้แยกจากกันไว้อยู่แล้ว โดยยูนิตเทสต์จะถูกรันในเฟสเทสต์ (mvn test) ส่วนอินทิเกรชั่นเทสต์จะถูกรันในเฟสเวอริฟาย (mvn verify) ค่าเริ่มต้นนั้น อินทิเกรชั่นเทสต์จะไม่ได้กำหนดให้ทำงาน
ถ้าต้องการใช้เมเว่นในการทำเทสต์
- เพิ่มปลั๊กอินเฟลเซฟ (maven-failsafe-plugin) เข้าไปในส่วน <build> ของ pom.xml
- แยกชนิดการเทสต์ด้วยชื่อคลาส
- **/*Test.java คือ ยูนิตเทส
- **/*IT.java คือ อินทิเกรชั่นเทสต์
- รัน mvn test เมื่อต้องการรันยูนิตเทสต์ และ mvn verify เมื่อต้องการรันอินทิเกรชั่นเทสต์
อย่าลืมว่าอินทิเกรชั่นเทสต์นั้นจะต้องผ่านยูนิตเทสต์ก่อนจึงจะรันได้นะ
ที่มา: http://maven.apache.org/surefire/maven-failsafe-plugin/examples/inclusion-exclusion.html
สแลช (Slash)