[iOS Dev] Test Driven Development with Kiwi (Part II: TDD)


Blog ที่แล้ว เราพูดถึงการ Setup Kiwi กันนะครับ
คราวนี้เราจะมาเขียน Test กันละ ... ตัวอย่างที่ผมจะยกมาก็คือ Factorial Function

Write a Test
Watch it Fail
and Make it Pass

** ก่อนอื่นให้ไปลบ Sample Test ในฟังก์ชั่น testExample ที่อยู่ใน testTargetName.m ก่อนนะ :)  


มาเริ่มกันเลย ขั้นแรกให้เราสร้าง Objective-C Test Case Class ขึ้นมาก่อน


เมื่อสร้างแล้ว ก็ให้ลบไฟล์ Header File (.h) ออกซะ แล้วลบเนื้อหาภายใน Implementation File (.m) แบบนี้

เวลาจะทำการ Test ก็ดูที่ Scheme ให้ดีนะครับ ว่าเป็นตัว Test Target ที่เราสร้างขึ้นหรือยัง ?


ถ้าต้อง Test ให้กด cmd + U หรือที่เมนู Product -> Test

ที่ยกตัวอย่างจำเป็นคำสั่งเบื้องต้นเท่านั้น อ่านเต็มๆ ได้ที่นี่เลยนะ

คราวนี้เรามาเริ่มเขียน Test กันได้เลย Factorial Function ควรจะเป็นยังไงครับ ?
ผมสร้าง KWMathFunction Class ขึ้นมาเพื่อเก็บฟังก์ชั่นการคำนวณทางคณิตศาสตร์เอาไว้
เมื่อสร้างแล้วเขียน Test เบื้องต้นว่า Factorial ของ 0 และ 1 ควรจะได้ 1 

แน่นอนครับ Fail และโดนด่าว่า ไม่มีฟังก์ชั่นนี้โว้ยยยยย = ='


แน่นอนว่า ไม่มีก็ไปเขียน (ต้องประกาศใน Header File ด้วยนะ) แล้วก็เขียนให้ Test มันผ่าน
เขียนแค่นี้จริงๆ นะ ไม่ได้ตลก เราบอกแล้วว่า เราจะเขียนแค่ให้มัน ผ่าน

คราวนี้พอกลับมาเทสก็จะผ่านละ ใน 2 Case ที่เราเขียนไป


จากนั้นก็เพิ่ม Test เข้าไป 


คราวนี้พอ Test เราก็จะ Fail แล้วโดนด่าว่า "ผิดโว้ยย ค่าที่ได้คือ 1" (แหงล่ะ)


พอละ เขียนโปรแกรมให้ถูกกันได้เลย (ฟังก์ชั่นที่ซับซ้อนกว่านี้ก็ต้องทำเยอะกว่านี้นะ)


คราวนี้พอ Test ก็จะผ่านทุก Case ที่เราเขียนขึ้นมา ... เท่านี้เอง :)
ลองไปทำดูนะครับ การทำ TDD เป็นเรื่องของบุคคลนะ คือทำหรือไม่ทำก็ได้ แต่ทำแล้วเร็วส์ และ หล่อส์

...
..
.

เค้าว่ามาอย่างนั้น :P

Popular posts from this blog

12 วิธี การบริการและดูแลลูกค้าในร้าน Starbucks

[Android Dev] การติดตั้ง Eclipse+AndroidSDK เพื่อพัฒนาโปรแกรมบน Android

"อีสุกอีใส" ประสบการณ์เมื่อต้องมาเป็นตอนอายุ 22