ตัวอย่างทั้งหมดที่ฉันได้อ่านและดูในวิดีโอการฝึกอบรมมีตัวอย่างง่าย ๆ แต่สิ่งที่ฉันไม่เห็นถ้าฉันทำรหัส "ของจริง" หลังจากที่ฉันได้รับสีเขียว นี่คือส่วน "Refactor" หรือไม่
ถ้าฉันมีวัตถุที่ค่อนข้างซับซ้อนด้วยวิธีการที่ซับซ้อนและฉันเขียนการทดสอบและขั้นต่ำเปล่าเพื่อให้ผ่าน (หลังจากที่มันล้มเหลวครั้งแรกสีแดง) ฉันจะกลับไปและเขียนรหัสจริงเมื่อใด และฉันต้องเขียนโค้ดจริงเท่าไหร่ก่อนที่จะทดสอบซ้ำ ฉันเดาว่าอันสุดท้ายจะเป็นสัญชาตญาณมากกว่า
แก้ไข: ขอบคุณทุกคนที่ตอบ คำตอบทั้งหมดของคุณช่วยฉันอย่างมาก ดูเหมือนจะมีแนวคิดที่แตกต่างกันในสิ่งที่ฉันถามหรือสับสนและอาจมี แต่สิ่งที่ฉันถามคือพูดว่าฉันมีแอปพลิเคชันสำหรับสร้างโรงเรียน
ในการออกแบบของฉันฉันมีสถาปัตยกรรมที่ฉันต้องการเริ่มต้นด้วยเรื่องราวของผู้ใช้เป็นต้นไปเรื่อย ๆ จากที่นี่ฉันใช้เรื่องราวของผู้ใช้และสร้างการทดสอบเพื่อทดสอบเรื่องราวของผู้ใช้ ผู้ใช้บอกว่าเรามีคนลงทะเบียนสำหรับโรงเรียนและชำระค่าธรรมเนียมการลงทะเบียน ดังนั้นฉันคิดว่าวิธีที่จะทำให้ล้มเหลว ในการทำเช่นนั้นฉันออกแบบคลาสทดสอบสำหรับคลาส X (อาจเป็นนักเรียน) ซึ่งจะล้มเหลว จากนั้นฉันก็สร้างชั้นเรียน "นักเรียน" อาจจะเป็น "โรงเรียน" ฉันไม่รู้
แต่ไม่ว่าในกรณีใดการออกแบบ TD ก็บังคับให้ฉันต้องคิดผ่านเรื่องราว ถ้าฉันสามารถทำการทดสอบล้มเหลวได้ฉันรู้ว่าทำไมมันถึงล้มเหลว แต่สิ่งนี้จะทำให้ฉันผ่านพ้นไปได้ มันเกี่ยวกับการออกแบบ
ฉันเปรียบสิ่งนี้กับความคิดเกี่ยวกับการเรียกซ้ำ การเรียกซ้ำไม่ใช่แนวคิดที่ยาก มันอาจจะยากกว่าที่จะติดตามมันในหัวของคุณ แต่ในความเป็นจริงส่วนที่ยากที่สุดคือการรู้เมื่อการเรียกซ้ำ "หยุด" เมื่อต้องหยุด (แน่นอนความคิดเห็นของฉัน) ดังนั้นฉันต้องคิดว่าอะไรจะหยุด การเรียกซ้ำก่อน มันเป็นเพียงการเปรียบเทียบที่ไม่สมบูรณ์และถือว่าการวนซ้ำซ้ำแต่ละครั้งนั้นเป็น "การผ่าน" อีกครั้งเพียงแค่ความเห็น
ในการดำเนินการโรงเรียนยากที่จะมองเห็น บัญชีแยกประเภทตัวเลขและธนาคารเป็น "ง่าย" ในแง่ที่คุณสามารถใช้เลขคณิตอย่างง่าย ฉันสามารถเห็นเครื่องหมาย + b และส่งกลับ 0 เป็นต้นในกรณีของระบบคนฉันต้องคิดให้มากขึ้นว่าจะใช้งานอย่างไร ฉันมีแนวคิดเกี่ยวกับความล้มเหลว, การผ่าน, refactor (ส่วนใหญ่เป็นเพราะการศึกษาและคำถามนี้)
สิ่งที่ฉันไม่ทราบจะขึ้นอยู่กับการขาดประสบการณ์ในความคิดของฉัน ฉันไม่ทราบวิธีล้มเหลวในการสมัครนักเรียนใหม่ ฉันไม่ทราบวิธีล้มเหลวบางคนพิมพ์ชื่อและมันจะถูกบันทึกลงในฐานข้อมูล ฉันรู้วิธีที่จะทำให้ +1 สำหรับคณิตศาสตร์ง่าย ๆ แต่ด้วยเอนทิตีเช่นเดียวกับบุคคลฉันไม่รู้ว่าฉันแค่ทดสอบเพื่อดูว่าฉันได้รับ ID เฉพาะฐานข้อมูลหรืออะไรอย่างอื่นเมื่อมีคนป้อนชื่อใน ฐานข้อมูลหรือทั้งสองอย่างหรือไม่
หรือบางทีนี่อาจแสดงว่าฉันยังสับสนอยู่