เพียงแค่สร้างโครงการทดสอบและการเขียนวิธีทดสอบบางอย่างเป็น TDD แต่ในประสบการณ์ของฉันมันไม่ได้ช่วยอะไรมากนอกจากคุณจะทำงานในห้องสมุดที่มี API ที่รู้จักและการเรียกใช้เมธอดนั้นสอดคล้องกับสิ่งที่ผู้ใช้คาดหวัง . คุณต้องมีรายการทดสอบที่ถูกต้องและสำหรับแอปพลิเคชั่นที่ไม่สำคัญซึ่งสามารถทำได้ยากมาก
ฉันแนะนำให้ลองใช้ SpecFlow - มันกำหนดการทดสอบแยกออกจากการติดตั้งและโครงสร้างของฟีเจอร์ไฟล์บังคับให้คุณคิดเกี่ยวกับสิ่งที่คุณกำลังทดสอบจริง ๆ
เมื่อคุณกำหนดคุณสมบัติคุณเพียงแค่เขียนสิ่งที่ชอบ
When a user is saved
Then the user should exist
เนื่องจากคุณไม่ได้อยู่ในไฟล์รหัสในตอนนี้คุณจึงไม่อยากคิดเกี่ยวกับรายละเอียดการใช้งานเช่นวิธีการที่ถูกเรียกให้สร้างผู้ใช้หรือแม้แต่ระดับที่ใช้งานคุณสามารถใช้แท็กเพื่อเลือกการใช้งานที่แตกต่างกัน ดังนั้นในระดับนี้ไม่สำคัญว่า "ผู้ใช้ถูกบันทึก" หมายถึงการโทรไปที่ CreateUser หรือเปิดเบราว์เซอร์และส่งแบบฟอร์ม
เมื่อคุณมีคุณสมบัติที่กำหนดไว้การทดสอบทั้งหมดจะถูกสร้างขึ้นและจะเริ่มผ่านเมื่อคุณใช้คำจำกัดความขั้นตอนและรหัสแอปพลิเคชันจริงที่จะทดสอบ
สำหรับแอพง่าย ๆ ที่คุณสามารถสร้างไฟล์ฟีเจอร์ได้ แต่สำหรับสิ่งที่ซับซ้อนกว่านั้นมันมีประโยชน์ที่จะรวบรวมสเป็คที่สมบูรณ์มากขึ้นไว้ล่วงหน้า ฉันใช้แอป mindmapping ของ iPad สำหรับสิ่งนี้ แต่คุณสามารถใช้เครื่องมือใดก็ได้ที่คุณพอใจที่สุด
เริ่มต้นด้วยรายการฟีเจอร์ระดับสูงเช่น "การลงทะเบียนผู้ใช้" สิ่งเหล่านี้มีแนวโน้มที่จะกว้างเกินไปที่จะเขียนการทดสอบโดยตรงดังนั้นแยกย่อยเป็นคุณลักษณะย่อยที่สามารถกำหนดได้อย่างชัดเจนและโดยทั่วไปจะจับคู่กับการกระทำของผู้ใช้เช่น "บันทึกผู้ใช้" หรือ "ดูผู้ใช้ที่มีอยู่"
คุณสมบัติย่อยเหล่านี้แต่ละรายการจะต้องมีรายการสถานการณ์จำลองที่กำหนดว่าคุณสมบัตินั้นใช้งานได้หรือไม่สิ่งต่าง ๆ เช่น "สามารถบันทึกผู้ใช้ที่ถูกต้อง" และ "ไม่สามารถบันทึกผู้ใช้ด้วยชื่อผู้ใช้ซ้ำ"
ในขณะที่คุณสร้างรายการนี้โดยทั่วไปจะกลายเป็นที่ชัดเจนว่าโครงสร้างจะต้องมีการปรับ - ถ้าคุณไม่สามารถทดสอบสถานการณ์ใด ๆ กับคุณลักษณะหรือคุณจบลงด้วยคุณสมบัติมากเกินไปในหนึ่งคุณลักษณะแล้วอาจมีการกำหนดคุณสมบัติที่ ระดับที่ไม่ถูกต้องและจำเป็นต้องแยกหรือเปลี่ยนแปลง