มีแอพพลิเคชั่นโอเพนซอร์ซที่พัฒนาขึ้นโดยใช้การพัฒนาแบบทดสอบที่ทำหน้าที่เป็นตัวอย่างของการทดสอบหน่วยที่ดี
ฉันต้องการดูตัวอย่างใน C # และ. NET (โปรดทราบว่าฉันพูดถึงแอปพลิเคชันไม่ใช่เฉพาะห้องสมุด)
ฉันเป็นโปรแกรมเมอร์ระดับกลางที่ต้องการเชื่อและฝึกฝน TDD จริงๆ แอพที่ฉันทำงานในงานประจำวันนั้นค่อนข้างซับซ้อน - มีโค้ดประมาณ 1 ล้านบรรทัดและฉันชอบที่จะแนะนำการทดสอบหน่วยเพิ่มเติม เรามีการทดสอบหน่วยในสถานที่ แต่ความพยายามของฉันที่ TDD และการทำงานกับรหัสที่อยู่ภายใต้การทดสอบยังไม่ได้รับการสนับสนุน
จากประสบการณ์ที่ จำกัด ของฉันดูเหมือนว่า TDD จะส่งเสริมความซับซ้อนมากมายในนามของการแยก บิตของแอปที่ยากต่อการทดสอบ - และที่บังเอิญมีแนวโน้มจะสำคัญ - ถูกผลักออกไปที่ขอบนอกสู่ขอบเขตของการทดสอบการรวมที่อาจหรือไม่อาจถูกเขียนขึ้นมา (ฉันกำลังคิดถึงผู้ต้องสงสัยตามปกติที่นี่การเข้าถึงระบบไฟล์การให้ความชุ่มชื้นวัตถุจากฐานข้อมูลการโทรทางเว็บแบบอะซิงโครนัส ฯลฯ )
รหัสที่อยู่ภายใต้การทดสอบมีแนวโน้มที่จะเกี่ยวข้องกับการทำงานร่วมกันระหว่างวัตถุและอาจมีตรรกะการไหลอย่างง่าย ๆ ซึ่งทั้งหมดเกิดขึ้นในหน่วยความจำและสามารถเขียนได้ในวิธีที่ง่ายกว่าและเข้าใจได้มากกว่า สำหรับการทดสอบ
ฉันเข้าใจเทคนิคในการล้อเลียนการอ้างอิงและเช่นนี้ แต่ในประสบการณ์ของฉันการใช้การเยาะเย้ยอย่างหนักนำไปสู่การทดสอบที่เปราะบางมาก ถ้าสัญชาตญาณแรกของฉันเมื่อเห็นการทดสอบเป็นสีแดงก็คือ "เยี่ยมมากตอนนี้ฉันต้องแก้ไข mocks ทั้งหมด" จากนั้นการทดสอบของฉันก็กลายเป็นแรงฉุดแทนที่จะเป็นตาข่ายนิรภัย
ฉันพยายามที่จะได้รับในอดีตอุปสรรคทางจิตนี้และเป็นส่วนหนึ่งของที่ฉันอ่านหนังสือไมเคิล Feathers' การทำงานอย่างมีประสิทธิภาพกับรหัสมรดก ฉันหวังว่าจะแสดงบางสิ่งที่ฉันขาดหายไป
ฉันยังต้องการศึกษาแอปพลิเคชั่นที่ไม่น่าสนใจบางอย่างที่มีการครอบคลุมโค้ดที่ดีบางทีระบบการจัดการเนื้อหาหรือแอป CRUD กรอบการทดสอบ FitNesse ที่ลุงบ๊อบพูดถึงเป็นสิ่งที่ฉันอาจจะมอง แต่ก็คงจะดีถ้าได้เห็นบางสิ่งที่เขียนด้วยภาษาที่ฉันคุ้นเคยที่สุด
ข้อเสนอแนะหรือคำพูดของภูมิปัญญาจะได้รับการชื่นชม