เนื่องจากเดิมอันเดิมยาวและติดกันเกินไปทำให้ยากต่อการอ่าน
จึงแยก (Week 3-2) - (Week 5-1) Test-Driven Development with Python ออกเป็น 7 part
Test Driven Development (TDD)
“เวลาเราเขียนโค้ด เราก็มักจะพบปัญหาเหล่านี้ในการทำงานอยู่เสมอ”
เจอ bug ที่หลุดรอดสายตาเราไปได้ กว่าจะรู้ตัวก็ตอนส่งให้ tester ดูแล้ว
หลังจากที่แก้ bug นั้นไปแล้ว พอส่งงานไปให้ตรวจอีกที tester กลับไปเจอ bug ตัวใหม่
bug ที่เจอนั้นเกิดได้จากหลายสาเหตุ เราต้องมานั่งไล่โค้ดทีละส่วนๆ กว่าจะเจอสาเหตุ
จึงเกิดแนวคิดการเขียนโค้ดที่เรียกว่า Test Driven Development(TDD) ขึ้นมา
1. สร้าง Test ขึ้นมาก่อน
2. ลองรัน Test => ไม่ผ่าน
3. เริ่มเขียนโค้ดจริงๆ
4. รัน Test อีกที => ผ่าน
5. ปรับโค้ดที่รันผ่านแล้วให้ดีขึ้น
( ข้อมูลจาก : https://medium.com/@atikom17315/test-driven-development-tdd-%E0%B8%84%E0%B8%B7%E0%B8%AD%E0%B8%AD%E0%B8%B0%E0%B9%84%E0%B8%A3-721689c9a01c )
เจอ bug ที่หลุดรอดสายตาเราไปได้ กว่าจะรู้ตัวก็ตอนส่งให้ tester ดูแล้ว
หลังจากที่แก้ bug นั้นไปแล้ว พอส่งงานไปให้ตรวจอีกที tester กลับไปเจอ bug ตัวใหม่
bug ที่เจอนั้นเกิดได้จากหลายสาเหตุ เราต้องมานั่งไล่โค้ดทีละส่วนๆ กว่าจะเจอสาเหตุ
จึงเกิดแนวคิดการเขียนโค้ดที่เรียกว่า Test Driven Development(TDD) ขึ้นมา
1. สร้าง Test ขึ้นมาก่อน
2. ลองรัน Test => ไม่ผ่าน
3. เริ่มเขียนโค้ดจริงๆ
4. รัน Test อีกที => ผ่าน
5. ปรับโค้ดที่รันผ่านแล้วให้ดีขึ้น
( ข้อมูลจาก : https://medium.com/@atikom17315/test-driven-development-tdd-%E0%B8%84%E0%B8%B7%E0%B8%AD%E0%B8%AD%E0%B8%B0%E0%B9%84%E0%B8%A3-721689c9a01c )
( ข้อมูลจาก : http://www.siamhtml.com/test-driven-development-introduction/ )

geckdriver

functional test : test ในมุมมองของ user
unit test : test ในมุมมองของ ผู้พัฒนา
แล้วจึงลอง import selenium แล้วเปิด browser firefox ไปที่ localhost ที่พอร์ต 8000
แล้วดูว่า title ของหน้า html คือ 'Django' หรือไม่
ในไฟล์ functional test ที่เราสร้างขึ้น (functional_tests.py)

ลองรันไฟล์

จะเปิดหน้า browser firefox แสดง unable to connect เพราะยังไม่ run server และสร้าง project

ต่อมาสร้างโปรเจคชื่อ superlists แล้วจึง runserver


จะแสดงหน้า default ของ framework django

ต่อมาทำการย้าย functional_test.py เข้ามาในโปรเจค superlists แล้วทำการสร้าง vcs ของเรา
(vcs Version Control System คือ ระบบที่จัดเก็บการเปลี่ยนแปลงที่เกิดขึ้นกับไฟล์หนึ่งหรือหลายไฟล์เพื่อที่คุณสามารถเรียกเวอร์ชั่นใดเวอร์ชั่นหนึ่งกลับมาดูเมื่อไรก็ได้ หนังสือเล่มนี้จะยกตัวอย่างจากไฟล์ที่เป็นซอร์สโค้ดของซอฟต์แวร์ แต่ขอให้เข้าใจว่าจริง ๆ แล้วคุณสามารถใช้ version control กับไฟล์ชนิดใดก็ได้
ที่มา : https://git-scm.com/book/th/v1/%E0%B9%80%E0%B8%A3%E0%B8%B4%E0%B9%88%E0%B8%A1%E0%B8%95%E0%B9%89%E0%B8%99%E0%B9%83%E0%B8%8A%E0%B9%89%E0%B8%87%E0%B8%B2%E0%B8%99-%E0%B9%80%E0%B8%81%E0%B8%B5%E0%B9%88%E0%B8%A2%E0%B8%A7%E0%B8%81%E0%B8%B1%E0%B8%9A-Version-Control)
ทำการตั้งค่า database >> .gitignore อยู่ใน vcs add file ทั้งหมดใน folder project แล้วทดสอบโชว์สถานะ

แล้วจึงทำการลบ cache

แล้วทำการ add gitignore เงื่อนไขทำเราตั้งไว้ในขั้นต้น แล้วจึง commit

ทดสอบทำการแสดง log commit ต่างๆ(ซึ่งในขั้นนี้มีอยู่เพียง commit เดียว)

Install selenium & geck driver
seleniumgeckdriver
Chapter 1
ขั้นแรกสร้างไฟล์เพื่อจะทดสอบ functional test แรกของหนังสือfunctional test : test ในมุมมองของ user
unit test : test ในมุมมองของ ผู้พัฒนา
แล้วจึงลอง import selenium แล้วเปิด browser firefox ไปที่ localhost ที่พอร์ต 8000
แล้วดูว่า title ของหน้า html คือ 'Django' หรือไม่
ในไฟล์ functional test ที่เราสร้างขึ้น (functional_tests.py)
ลองรันไฟล์
จะเปิดหน้า browser firefox แสดง unable to connect เพราะยังไม่ run server และสร้าง project
ต่อมาสร้างโปรเจคชื่อ superlists แล้วจึง runserver
จะแสดงหน้า default ของ framework django
ต่อมาทำการย้าย functional_test.py เข้ามาในโปรเจค superlists แล้วทำการสร้าง vcs ของเรา
(vcs Version Control System คือ ระบบที่จัดเก็บการเปลี่ยนแปลงที่เกิดขึ้นกับไฟล์หนึ่งหรือหลายไฟล์เพื่อที่คุณสามารถเรียกเวอร์ชั่นใดเวอร์ชั่นหนึ่งกลับมาดูเมื่อไรก็ได้ หนังสือเล่มนี้จะยกตัวอย่างจากไฟล์ที่เป็นซอร์สโค้ดของซอฟต์แวร์ แต่ขอให้เข้าใจว่าจริง ๆ แล้วคุณสามารถใช้ version control กับไฟล์ชนิดใดก็ได้
ที่มา : https://git-scm.com/book/th/v1/%E0%B9%80%E0%B8%A3%E0%B8%B4%E0%B9%88%E0%B8%A1%E0%B8%95%E0%B9%89%E0%B8%99%E0%B9%83%E0%B8%8A%E0%B9%89%E0%B8%87%E0%B8%B2%E0%B8%99-%E0%B9%80%E0%B8%81%E0%B8%B5%E0%B9%88%E0%B8%A2%E0%B8%A7%E0%B8%81%E0%B8%B1%E0%B8%9A-Version-Control)
ทำการตั้งค่า database >> .gitignore อยู่ใน vcs add file ทั้งหมดใน folder project แล้วทดสอบโชว์สถานะ
แล้วจึงทำการลบ cache
แล้วทำการ add gitignore เงื่อนไขทำเราตั้งไว้ในขั้นต้น แล้วจึง commit
ทดสอบทำการแสดง log commit ต่างๆ(ซึ่งในขั้นนี้มีอยู่เพียง commit เดียว)
ไม่มีความคิดเห็น:
แสดงความคิดเห็น