Monday, November 26, 2007

พฤติกรรมของ test mode ใน Grails

ใน Grails เราสามารถปรับแต่ง mode การทำงานได้เป็น 3 mode ก็คือ development สำหรับใช้พัฒนา, test สำหรับใช้ทดสอบ และ production สำหรับใช้งานจริง

พฤติกรรมของแต่ละ mode จะแตกต่างกันเล็กน้อย และเราสามารถตั้งค่าบางอย่างเช่น data source ให้กับแต่ละ mode ของ Grails

Grails จะทำงานใน test mode เมื่อผู้ใช้ต้องการจะทดสอบระบบด้วยคำสั่ง


$ grails test-app



ซึ่งจะเกี่ยวข้องกับการทดสอบเชิงหน่วย (unit tests) และเชิงรวม (integration tests)

จุดสำคัญก็คือ Grails มีแนวคิดของ test isolation นั่นหมายถึง ทุก ๆ การทดสอบจะถูกตั้งสมมติฐานไว้ว่าไม่มีการเกี่ยวข้องกัน เป็นผลให้องค์ประกอบที่ใช้ร่วมกันเช่นข้อมูลในฐานข้อมูลจะถูกลบทุก ๆ ในแต่ละการทดสอบ

ดังนั้นเมื่อต้องการทดสอบการทำงานใน test mode จึงจำเป็นต้องแยก data source ออกมาเป็นฐานข้อมูลเฉพาะสำหรับ test และหากเราใช้ BootStrap ในการเตรียมการข้อมูลแล้วนั้น ใน method setUp ของทุก ๆ test case จะต้องมีการเรียกใช้ closure init ของ BootStrap ไว้ทุกครั้ง


class MyTests extends GroovyTestCase {
void setUp() {
new BootStrap().init()
}

void testSomething() { ... }
}

No comments: