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

Test-Driven Development with Python(Chapter 2)

เนื่องจากเดิมอันเดิมยาวและติดกันเกินไปทำให้ยากต่อการอ่าน
จึงแยก (Week 3-2) - (Week 5-1) Test-Driven Development with Python ออกเป็น 7 part


Chapter 2

ตามในหนังสือ ทำการเพิ่ม user story ในการประกอบ functional test เรื่องราวของ Edith ที่ได้ใช้ webapp. ตัวอย่าง superlists ตามในหนังสือ ในขั้นต้นเพียงแค่ เทียบ html title ว่าตรงกับคำว่า 'To-Do' หรือไม่


ทดสอบรันซึ่งแน่นอนว่า Assert Error เพราะเรายังไม่ได้จัดการอะไรกับ webapp. ของเราเลย จึงเทียบ 'To-Do' กับหน้า default ของ django


ต่อมาเพิ่ม code ให้แสดงด้วยว่า ถ้าไม่ตรงแล้วแสดง title อะไร


ทำการ run funcitonal test อีกครั้งจึงเทียบ 'To-Do' กับหน้า default ของ django


ต่อมาทำการจัดระเบียบ functional test ของเรา
#1 : ทำเป็น class unittest.TestCase
#2 : setUp() เป็นฟังก์ชันแรกเริ่ม default ตอนเริ่มเทส
#3 : tearDown() เป็นฟังก์ชันสุดท้าย default ตอนจบเทส
#4 : ฟังก์ชันหลักในการ functional test ในมุมมองของ user ของเรา โดยในหนังสือตั้งชื่อว่า "test_can_start_​a_list_and_retrieve_it_later"
#5 : เทียบ html title ว่าตรงกับคำว่า 'To-Do' หรือไม่
#6 : จงใจ fail test ก่อน develop ต่อ โดยมี message error ว่า "Finish the test!" (ทำ test ให้เสร็จ)
#7 : if __name__ == '__main__' คือวิธีการเช็คของ python ว่ารันจาก command line ไม่ใช่ import มาจาก spript อื่นๆหรือไม่
#8 : จาก #7 warnings='ignore' ระงับ ResourceWarning เพราะใช้งานฟุ่มเฟือยที่จะเตือนในขณะที่ writing



เมื่อทดสอบรันก็จะติด error เก่าเพราะยังไม่ได้ทำการแก้ใน webapp

ต่อมาทำการทดสอบใน browser รอโหลดก่อนเริ่มเทสเป็นเวลา 3 วินาที โดยใส่ไว้ใน setUp()


ใช้คำสั่ง git diff ดูการเปลี่ยนแปลงว่าเราได้แก้อะไรไปบ้างเทียบกับ commit ก่อนหน้า


ทำการ commit -a (คือการ automatically เพิ่มการเปลี่ยนแปลงไปยัง tracked files)


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

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