मान लीजिए कि मैं पात्रों के साथ एक भूमिका खेल विकसित करना शुरू करता हूं जो अन्य पात्रों और उस तरह के सामान पर हमला करता है।
टीडीडी लागू करते हुए, मैं Character.receiveAttack(Int)
विधि के अंदर तर्क का परीक्षण करने के लिए कुछ परीक्षण मामले बनाता हूं । कुछ इस तरह:
@Test
fun healthIsReducedWhenCharacterIsAttacked() {
val c = Character(100) //arg is the health
c.receiveAttack(50) //arg is the suffered attack damage
assertThat(c.health, is(50));
}
कहो कि मेरे पास 10 तरीके हैं परीक्षण receiveAttack
विधि। अब, मैं एक विधि जोड़ता हूं Character.attack(Character)
(जिसे कॉल receiveAttack
विधि), और कुछ टीडीडी चक्रों के परीक्षण के बाद, मैं एक निर्णय लेता हूं: Character.receiveAttack(Int)
होना चाहिए private
।
पिछले 10 परीक्षण-मामलों के साथ क्या होता है? क्या मुझे उन्हें हटाना चाहिए? क्या मुझे विधि रखनी चाहिए public
(मुझे ऐसा नहीं लगता)?
यह सवाल निजी तरीकों का परीक्षण करने के तरीके के बारे में नहीं है बल्कि टीडीडी को लागू करते समय फिर से डिजाइन करने के बाद उनसे कैसे निपटना है
internal
अपनी भाषा के समकक्ष के रूप में चिह्नित किया जा सकता है और फिर भी इसे उजागर होने से रोका जा सकता है। वास्तव में केविन क्लाइन का जवाब इस तरह का है।