ฉันเริ่มโครงการใหม่และพยายามอย่างหนักที่จะใช้ TDD เพื่อผลักดันการออกแบบ ฉันผลักดันมาหลายปีและในที่สุดก็ได้รับการอนุมัติให้ใช้เวลาเพิ่มในโครงการนี้เพื่อใช้ในขณะที่ฉันเรียนรู้วิธีการทำอย่างถูกต้อง
นี่คือโมดูลใหม่เพื่อผูกเข้ากับระบบที่มีอยู่ ขณะนี้การเข้าถึงข้อมูลทั้งหมดเกิดขึ้นผ่าน webservices ซึ่งส่วนใหญ่เป็นเพียงกระดาษห่อหุ้มบาง ๆ ผ่านขั้นตอนการจัดเก็บฐานข้อมูล
ข้อกำหนดหนึ่งคือสำหรับร้านค้าที่ระบุฉันส่งคืนใบสั่งซื้อทั้งหมดที่ถือว่าใช้ได้สำหรับแอปพลิเคชันนี้ ใบสั่งซื้อถือว่าสมบูรณ์ถ้าวันที่จัดส่งตรงกับช่วงที่กำหนดจากวันที่เปิดร้านค้า (สำหรับร้านค้าใหม่)
ตอนนี้ฉันไม่สามารถใส่ตรรกะนี้ลงในรหัสแอปพลิเคชันได้เนื่องจากฉันจะไม่นำเงินคืน PO นับล้านเพื่อรับโหลที่ใช้กับสามารถนำไปใช้กับร้านนี้ได้เนื่องจากข้อ จำกัด ข้างต้น
ฉันคิดว่าฉันสามารถส่งช่วงวันที่ไปยัง GetValidPOs proc และใช้ค่าเหล่านั้นเพื่อส่งคืน PO ที่ถูกต้อง แต่ถ้าเราเพิ่มข้อกำหนดอื่นให้กับสิ่งที่ถือว่าเป็น PO ที่ถูกต้อง
และฉันจะทดสอบสิ่งนี้และตรวจสอบว่ามันยังทำงานได้อย่างไร เราไม่ได้ใช้ ORM และไม่น่าจะเกิดขึ้น และฉันไม่สามารถเรียก DB ในการทดสอบของฉันได้
ผมติดอยู่.
ความคิดอื่นของฉันคือมี mocks บางตัวที่ส่งคืนข้อมูลที่ถูกต้องส่วนอื่น ๆ ที่ส่งคืนข้อมูลที่ไม่ดีและมีที่เก็บข้อมูลในตัวเครื่องเกิดข้อยกเว้นหากข้อมูลไม่ดีเกิดขึ้นและทดสอบว่าข้อผิดพลาดเกิดขึ้นหาก GetValidPOs proc ล้อเลียนที่ใช้ในการทดสอบ)
มันสมเหตุสมผลหรือไม่ หรือมีวิธีที่ดีกว่า
UPDATE: ฉันสามารถใช้ภาษา EF ได้ ตอนนี้ฉันเพียงแค่ต้องคิดหาวิธีการใช้และทำให้มันทดสอบได้ในขณะที่ยังสามารถพึ่งพาขั้นตอนการจัดเก็บและความยากลำบากในการมีข้อมูลกระจัดกระจายไปทั่วฐานข้อมูลหลายแห่ง