เรามีวัตถุ
public class MyObject{
protected MyObject(){}
public string Property1 {get;private set;}
public string Property2 {get;private set;}
public string Property3 {get;private set;}
public string Property4 {get;private set;}
public string Property5 {get;private set;}
public string Property6 {get;private set;}
public string Property7 {get;private set;}
public string Property8 {get;private set;}
public string Property9 {get;private set;}
public string Property10 {get;private set;}
}
ในรหัสการผลิตของเราเราเติมวัตถุนี้ผ่าน automapper สามารถเข้าถึงคุณสมบัติและตั้งค่าได้อย่างถูกต้อง
ตอนนี้เมื่อเราต้องการทดสอบคลาสนี้ในไปป์ไลน์ในอนาคตมันเป็นไปไม่ได้ที่จะเติมคุณสมบัติที่มีค่าตัวอย่าง (ที่จะทดสอบ)
มีตัวเลือกน้อยใช้ได้
ตัวสร้างแบบกำหนดเองเพื่อยอมรับพารามิเตอร์ที่จำเป็นสำหรับการทดสอบและตั้งค่าคุณสมบัติปัจจุบันต้องใช้ตัวสร้าง 3 ตัว สิ่งนี้ไม่สะอาดเนื่องจากตัวสร้างไม่ได้ทำหน้าที่การทำงานทางธุรกิจใด ๆ
ทำให้คุณสมบัติเสมือนจริงเพื่อให้คลาสสามารถถูก stubbed แต่การทำเครื่องหมายคุณสมบัติเสมือนนั้นไม่ได้ให้คุณค่าทางธุรกิจและทำให้ชั้นเรียนของฉันสกปรก
เพิ่มตัวสร้างออบเจ็กต์ให้กับคลาสเพื่อสร้างออบเจ็กต์ภายใน ไม่มีมูลค่าทางธุรกิจเพิ่มอีก อาจจะสะอาดกว่านี้เล็กน้อย แต่ก็ยังมีโค้ดที่ไม่เกี่ยวข้องจำนวนมากในวัตถุโดเมน
ข้อเสนอแนะคำแนะนำหรือตัวเลือกอื่น ๆ ที่นี่?