ก่อนหน้านี้ผมเคยพูดเรื่อง Specification Workshops ไปแล้ว วันนี้เราจะมาลองเขียน Robot test script ด้วยแนวคิดของ ATDD กันดูครับ ซึ่ง ATDD ใน Robot Framework เป็น Feature ที่ถูกใส่มาใน Framework ของ Robotframework เลย ไม่จำเป็นต้องลง library เพิ่มเติมก็สามารถทำงานได้เลย
มาดูตัวอย่าง ATDD เทียบกับ Test Script ปกติกันครับ
Normal Test Script:
ATDD Test Script:
จะเห็นได้ว่า ATDD Test Script อ่านแล้วเข้าใจได้ง่ายกว่า ว่า Flow ของ Software ทำงานอย่างไร
ATDD Prefixes มีอะไรให้ใช้บ้าง
Prefixes ที่ Robot รองรับจะมีตาม list นี้เลย Given/When/Then/And/But
Given จะใช้ในการบ่งบอกว่า Test Step นี้คือขั้นตอนเตรียมการก่อนจะถึง Function/Feature ที่เราต้องการจะเทส
When เป็น Prefix ที่ใช้บอกว่า Step ที่จะรัน เป็น Step ที่เราต้องการจะทดสอบ
Then ใช้บอก Expected result หรือผลลัพทธ์ที่ควรจะเป็นนั่นเอง
And/But เป็น Prefixes ที่ไว้ใช้เพื่อขยาย Test Step ก่อนหน้า ในกรณีที่ Test Step ก่อนหน้าจำเป็นต้องมี Step มากกว่า หนึ่ง Step
ข้อแตกต่างหลักๆในการ Implement
- Arguments จะถูกผูกมาไว้อยู่ใน Keyword name เลย เพื่อให้อ่านเป็นประโยคเดียวได้เลย เช่น
User login with email “${username}” and password “${password}“ - Step definition จะเป็น Layer ที่ใช้เพื่อเก็บ Code ที่ใช้ในการ Execute Test Step อีกทีหนึ่ง
ATDD จะมีประโยชน์สูงสุด หากเพื่อนๆใช้ร่วมกับ
Specification workshop ครับ