TDD कर रहे हैं और एक इकाई परीक्षण लिख रहे हैं, "परीक्षण" कोड के पहले पुनरावृत्ति को लिखते समय आप "धोखा" देने का आग्रह कैसे करते हैं कि आप परीक्षण कर रहे हैं?
उदाहरण के लिए:
आइए मुझे किसी संख्या के गुणनखंड की गणना करने की आवश्यकता है। मैं एक इकाई परीक्षण (MSTest का उपयोग करके) कुछ इस तरह से शुरू करता हूं:
[TestClass]
public class CalculateFactorialTests
{
[TestMethod]
public void CalculateFactorial_5_input_returns_120()
{
// Arrange
var myMath = new MyMath();
// Act
long output = myMath.CalculateFactorial(5);
// Assert
Assert.AreEqual(120, output);
}
}
मैं इस कोड को चलाता हूं, और यह विफल रहता है क्योंकि CalculateFactorial
विधि भी मौजूद नहीं है। इसलिए, अब मैं परीक्षण के तहत विधि को लागू करने के लिए कोड का पहला पुनरावृत्ति लिखता हूं, परीक्षण पास करने के लिए आवश्यक न्यूनतम कोड लिख रहा हूं ।
बात यह है, मैं लगातार निम्नलिखित लिखने के लिए ललचा रहा हूँ:
public class MyMath
{
public long CalculateFactorial(long input)
{
return 120;
}
}
यह, तकनीकी रूप से, सही है कि यह वास्तव में उस विशिष्ट टेस्ट पास (गो ग्रीन) को बनाने के लिए आवश्यक न्यूनतम कोड है , हालांकि यह स्पष्ट रूप से एक "धोखा" है क्योंकि यह वास्तव में एक भाज्य की गणना के कार्य को करने का प्रयास भी नहीं करता है । बेशक, अब रीफैक्टरिंग भाग कार्यान्वयन की सच्ची रीफैक्टरिंग के बजाय "सही कार्यक्षमता लिखने" में एक अभ्यास बन जाता है। जाहिर है, विभिन्न मापदंडों के साथ अतिरिक्त परीक्षण जोड़ना विफल हो जाएगा और एक रीफैक्टरिंग को मजबूर करेगा, लेकिन आपको उस एक परीक्षा से शुरू करना होगा।
तो, मेरा सवाल यह है कि "टेस्ट पास करने के लिए न्यूनतम कोड लिखने" के बीच आप उस संतुलन को कैसे प्राप्त करते हैं?