ฉันกำลังพยายามทดสอบหน่วยเครื่องมือจัดการโฮสต์ WCF ที่ฉันเขียน โดยทั่วไปเอ็นจิ้นจะสร้างอินสแตนซ์ ServiceHost ในทันทีตามการกำหนดค่า สิ่งนี้ช่วยให้เราสามารถกำหนดค่าบริการใหม่ได้แบบไดนามิกโดยไม่ต้องนำบริการทั้งหมดลงและเริ่มการทำงานใหม่เมื่อใดก็ตามที่มีการเพิ่มบริการใหม่หรือบริการเก่าถูกลบออก
ฉันประสบปัญหาในการทดสอบหน่วยเครื่องมือการจัดการโฮสต์นี้อย่างไรก็ตามเนื่องจากวิธีการทำงานของ ServiceHost หากมีการสร้าง ServiceHost แล้วเปิดและยังไม่ได้ปิดสำหรับปลายทางเฉพาะจะไม่สามารถสร้าง ServiceHost อื่นสำหรับจุดสิ้นสุดเดียวกันได้ซึ่งส่งผลให้เกิดข้อยกเว้น เนื่องจากความจริงที่ว่าแพลตฟอร์มการทดสอบหน่วยที่ทันสมัยขนานกับการดำเนินการทดสอบฉันจึงไม่มีวิธีที่มีประสิทธิภาพในการทดสอบหน่วยของโค้ดนี้
ฉันใช้ xUnit.NET โดยหวังว่าเนื่องจากความสามารถในการขยายตัวของมันฉันจึงสามารถหาวิธีบังคับให้รันการทดสอบแบบอนุกรมได้ อย่างไรก็ตามฉันไม่มีโชคเลย ฉันหวังว่าใครบางคนที่นี่ใน SO พบปัญหาที่คล้ายกันและรู้วิธีรับการทดสอบหน่วยเพื่อเรียกใช้แบบอนุกรม
หมายเหตุ: ServiceHostเป็นคลาส WCF ซึ่งเขียนโดย Microsoft ฉันไม่มีความสามารถที่จะเปลี่ยนพฤติกรรมได้ การโฮสต์แต่ละจุดสิ้นสุดของบริการเพียงครั้งเดียวก็เป็นพฤติกรรมที่เหมาะสมเช่นกัน ... อย่างไรก็ตามไม่ได้เอื้อต่อการทดสอบหน่วยโดยเฉพาะ