Screen Shot 2558-07-12 at 10.32.01 AM
เขียนเขาพูดกันว่า Swift 2 มันเปลี่ยนไปเยอะ (ไม่เคยเขียนด้วยนะสิ)
ซึ่งแน่นอนว่าต้อง update Xcode กันด้วย ซึ่งตอนนี้มันเป็น version 7 beta 3
โดย feature ที่น่าสนใจมันอยู่ที่การ Testing ซึ่งประกอบไปด้วย

  1. Unit testing
  2. User Interface testing (UI testing)
  3. Code coverage

มีมาให้นักพัฒนาทุกอย่างเลยนะเนี่ย
ดังนั้นมาทำความรู้จักกับมันหน่อย ตามภาษาคนไม่รู้เรื่องอะไรเลย !!

ขั้นตอนการศึกษาแบบคนไม่รู็เรื่องอะไรเลย เป็นดังนี้

1. สร้าง project มันเลยสิ

มีให้เราเลือกด้วยว่า ใน project จะมี Unit test และ UI test ด้วยหรือไม่
ซึ่งค่า default จะมีให้ทั้งคู่เลย
ว่าแต่ iOS developer เขาเขียน test หรือเปล่านะ ?

ผลที่ได้คือใน project ของเรานั้นก็จะมี 3 ส่วนการทำงาน คือ

  1. Source code หลักของ project
  2. Unit testing
  3. UI testing

แสดงดังรูป
Screen Shot 2558-07-12 at 9.27.37 AM

2. จากนั้นก็เราเขียน code กันดีกว่า

เริ่มด้วยการเขียน unit test มันไปเลย
ข้อดีของ Xcode 7  beta 3 คือ
เราสามารถ reference ไปยัง module ที่ต้องการทดสอบได้ง่ายๆ ด้วย @testable ดังนี้

จากนั้นก็เขียน test ไป เรื่อยๆ ก็ได้ code ดังนี้

ส่วน production code หรือ FizzBuzz.swift จะเป็นดังนี้

3. จากไฟล์ FizzBuzz.swift นั้นเหมือนจะมี code ที่ไม่ถูกทดสอบนะ ?

แต่ถ้ามองไม่เห็น หรือ มองไม่ชัด
มันก็มีตัวช่วยคือ Code Coverage ให้นะ
แต่ว่าโดยค่า default มันไม่เปิดให้ใช้นะสิ !! ทำไมฟร่ะ ??

มาดูขั้นตอนการใช้งานแบบง่ายๆ กันสักหน่อย

3.1 ทำการแก้ไข schema การ run test หรือ Edit scheme ดังนี้

Screen Shot 2558-07-12 at 10.17.39 AM

3.2 ทำการแก้ไขในส่วนของการทดสอบ เพื่อเปิดการใช้งาน Code coverage
โดยเลือกที่ Code coverage ดังรูป

Screen Shot 2558-07-12 at 9.51.34 AM

3.3 กลับไปที่ไฟล์ FizzBuzz.swift เพื่อดู Code coverage
เลือก Editor -> Code coverage -> Show code coverage ดังรูป

Screen Shot 2558-07-12 at 9.53.00 AM

จะแสดงผลของ Code coverage ดังรูป

Screen Shot 2558-07-12 at 9.53.10 AM

ดังนั้น เราก็จะรู้ได้ทันทีว่า code บรรทัดไหนบ้างที่ไม่ถูกทดสอบ !!!

มาเขียน Unit test ใน XCode + Swift 2 กันครับ
เพื่อเพิ่มคุณภาพของกับ app ของคุณ