คุณมีคลาส X และคุณเขียนการทดสอบหน่วยบางอย่างที่ตรวจสอบพฤติกรรม X1 นอกจากนี้ยังมีคลาส A ซึ่งใช้ X เป็นตัวอ้างอิง
เมื่อคุณเขียนการทดสอบหน่วยสำหรับ A คุณจำลอง X ในคำอื่น ๆ ในขณะที่การทดสอบหน่วย A คุณตั้งค่า (สมมุติ) พฤติกรรมของจำลองของ X ให้เป็น X1 เวลาผ่านไปผู้คนใช้ระบบของคุณต้องการการเปลี่ยนแปลง X วิวัฒนาการ: คุณแก้ไข X เพื่อแสดงพฤติกรรม X2 เห็นได้ชัดว่าการทดสอบหน่วยสำหรับ X จะล้มเหลวและคุณจะต้องปรับตัว
แต่อะไรกับ A? การทดสอบหน่วยสำหรับ A จะไม่ล้มเหลวเมื่อปรับเปลี่ยนพฤติกรรมของ X (เนื่องจากการเยาะเย้ยของ X) วิธีการตรวจสอบว่าผลลัพธ์ของ A จะแตกต่างกันเมื่อทำงานด้วย X "จริง" (แก้ไข) X
ฉันคาดหวังคำตอบตามบรรทัดของ: "นั่นไม่ใช่จุดประสงค์ของการทดสอบหน่วย" แต่การทดสอบหน่วยมีค่าเท่าไร? เป็นเพียงการบอกคุณจริง ๆ ว่าเมื่อการทดสอบทั้งหมดผ่านไปคุณไม่ได้นำการเปลี่ยนแปลงมาใช้ และเมื่อพฤติกรรมของบางคลาสเปลี่ยนไป (ด้วยความเต็มใจหรือไม่เต็มใจ) คุณจะตรวจพบ (โดยเฉพาะอย่างยิ่งในวิธีอัตโนมัติ) ผลที่ตามมาทั้งหมดได้อย่างไร เราไม่ควรมุ่งเน้นไปที่การทดสอบการรวมระบบมากกว่านี้ใช่ไหม
X1
คุณจะบอกว่าดำเนินการติดต่อX
X1
ถ้าคุณเปลี่ยนอินเตอร์เฟซX1
ที่จะX2
เยาะเย้ยที่คุณใช้ในการทดสอบอื่น ๆ ที่ไม่ควรรวบรวมอีกต่อไปด้วยเหตุนี้คุณจะถูกบังคับให้แก้ไขการทดสอบเหล่านั้นมากเกินไป การเปลี่ยนแปลงพฤติกรรมในชั้นเรียนไม่ควรสำคัญ ในความเป็นจริงคลาสของคุณA
ไม่ควรขึ้นอยู่กับรายละเอียดการใช้งาน (ซึ่งเป็นสิ่งที่คุณต้องการเปลี่ยนแปลงในกรณีนั้น) ดังนั้นการทดสอบหน่วยA
ยังคงถูกต้องและพวกเขาบอกคุณว่าการA
ทำงานได้รับการใช้งานที่เหมาะสมของอินเทอร์เฟซ