ทำไมซิงเกิลตันถึงสอบยาก?

สารบัญ:

ทำไมซิงเกิลตันถึงสอบยาก?
ทำไมซิงเกิลตันถึงสอบยาก?
Anonim

สาเหตุที่ทำข้อสอบคลาสซิงเกิลตันยากคือ ที่คุณไม่สามารถเริ่มต้นคลาสสำหรับการทดสอบแต่ละครั้งได้อีก เพราะสามารถเริ่มต้นได้เพียงครั้งเดียว (และดังนั้น ช่วยให้คุณตั้งค่าทั้งหมดได้อย่างถูกต้องสำหรับการทดสอบแต่ละครั้ง)

ทำไมสอบซิงเกิลตันยาก

มันยากที่จะทดสอบโค้ดที่ใช้ซิงเกิลตัน

คุณไม่สามารถควบคุมการสร้างออบเจกต์ซิงเกิลตันได้เพราะบ่อยครั้งที่โค้ดนั้นถูกสร้างขึ้นใน static initializer หรือ static method. ด้วยเหตุนี้ คุณจึงไม่สามารถล้อเลียนพฤติกรรมของอินสแตนซ์ Singleton นั้นได้

ซิงเกิลตันมีปัญหาอะไร

Singletons ขัดขวางการทดสอบหน่วย: Singleton อาจทำให้เกิดปัญหาสำหรับ การเขียนโค้ดที่ทดสอบได้ หากวัตถุและวิธีการที่เกี่ยวข้องกันแน่นเกินไปจนไม่สามารถทดสอบได้โดยไม่ต้องเขียน คลาสสำหรับซิงเกิลตันโดยเฉพาะ

ข้อเสียของซิงเกิลตันในการทดสอบหน่วยคืออะไร

ในการรันโค้ดที่มีซิงเกิลตันในชุดทดสอบ เราต้องผ่อนคลายคุณสมบัติซิงเกิลตัน นี่คือวิธีที่เราทำ ขั้นตอนแรกคือ เพิ่มวิธีสแตติกใหม่ในคลาสซิงเกิลตัน วิธีนี้ช่วยให้เราสามารถแทนที่อินสแตนซ์แบบคงที่ในซิงเกิลตัน

ทำไมซิงเกิลตันถึงรบกวนการทดสอบหน่วย

ในการทดสอบหน่วย แต่ละหน่วยการทดสอบควรเป็นอิสระจากกัน อีกเหตุผลหนึ่งที่รูปแบบการออกแบบ Singleton ทำให้ชีวิตของคุณยากในการทดสอบหน่วยคือ เพราะพวกเขายังคงอยู่ในหน่วยความจำจนกว่าแอปพลิเคชันจะมีชีวิตอยู่ ดังนั้นพวกเขาจึงคงสถานะตราบเท่าที่แอปพลิเคชันยังคงอยู่ใน หน่วยความจำ