วันพฤหัสบดีที่ 7 มีนาคม พ.ศ. 2562

[TDD] อธิบาย Commit

commit ที่ 1

f26b0fe
First commit

เริ่มสร้าง functional_tests.py เพื่อทดสอบว่า Django พร้อมใช้งานแล้วและทดสอบการทำงานโดย
- webdriver แสดงผลการเปิดหน้าเว็บบน Firefox
- เปิดหน้าเว็บที่คาดว่าจะได้จาก local
- ดูว่า title ที่แสดงเหมือนกับชื่อที่ assert
จากนั้นสร้างโปรเจคชื่อ superlists ไว้


commit ที่ 2

e8533ab
Add app for lists, with deliberately failing unit test

บทที่2
ลอง test ว่ามี To-Do อยู่ใน title หรือไม่ จากนั้นเปลี่ยนวิธีการทดสอบโดยการ import module unittest มาใช้โดย
- สร้าง class ที่ใช้ในการทดสอบ ซึ่งใน class สามารถมีได้หลายฟังก์ชันทดสอบ
- setUp และ tearDown เป็น method พิเศาษที่จะทำงานตอนเริ่มและยุติการ test
- ถ้ามีการ test แล้ว fail จะแสดง error message 'Finish the test!'
บทที่3
ต้องการสร้างหน้า Home page
- สร้างแอพใหม่ชื่อ lists
- ทำการ test ทั้ง 2 แบบ คือ test ด้วย functional_tests.py และ test ด้วย unittest เนื่องจาก
functional_tests.py  เป็นการ test โดยการเปิดหน้าเว็บขึ้นมาและแสดงในแบบของการใช้งานของผู้ใช้ ซึ่งหากมีส่วนที่เออเร่อ จะทำให้เว็บไม่ทำงาน
unittest เป็นการ test ในส่วนของผู้พัฒนา ซึ่งจะไม่มีการเรียกเปิดหน้าเว็บใดๆขึ้นมา ซึ่งการ test จะสามารถแยก test เป็นส่วนๆได้


ทดสอบผ่าน py functional_tests.py 


ทดสอบผ่าน py manage.py test



Commit ที่ 3

0c5dfe2
First unit test and url mapping, dummy view

- test การใช้งาน url และ ฟังก์ชันใน views โดยการ import จาก views.py มา test ใน test.py จะเห็นว่า error เนื่องจากใน views.py ยังไม่มีการตั้งค่า home page
- เมื่อตั้งค่า homepage ใน views.py แล้ว ก็ต้องตั้งค่า url ด้วย เพื่อเรียกใช้งานฟังก์ชันใน views.py เมื่อ test ด้วย py manage.py test จะเห็นว่าสามารถทำงานได้แล้ว


Commit ที่ 4

816aef3
Basic view now returns minimal HTML

เพิ่มการ test เพื่อทดสอบดูหน้า homepage ให้แสดง title เป็น To-Do lists การทดสอบให้รันด้วย unit test หากเจอข้อผิดพลาดก็ให้แก้ไขและรันซ้ำจนกว่าจะได้ผลลัพธ์ตามที่ต้องการ
- เปลี่ยนแปลงฟังก์ชันใน views.py ให้ def Home_page return title เป็น To-Do lists
- เมื่อทดสอบ unit test ได้ผลลัพธ์ตามที่ต้องการแล้ว ก็ให้ทดสอบด้วย functional_tests ซ้ำอีกครั้ง
- ทดสอบเปิดหน้าเว็บ ทำงานได้

หน้าเว็บแสดง title เป็น To-Do lists ตามที่ต้องการ


ไม่มีความคิดเห็น:

แสดงความคิดเห็น