मैं अपनी ओपन सोर्स प्रोजेक्ट्स में से एक के लिए एक ढीले टीडीडी वर्कफ़्लो का पालन करने की कोशिश कर रहा हूं। यह अन्य प्रोग्रामर का उपयोग करने के लिए एक एपीआई है।क्या मुझे संकलन करने से पहले परीक्षण लिखना चाहिए?
इस तरह, एक महत्वपूर्ण पहलू के साथ-साथ एपीआई "काम" बनाने के लिए यह भी डिजाइन किया जा रहा है कि यह कैसे खाया जाएगा। मैंने कुछ लोगों को यह कहते हुए सुना है कि संकलन करने से पहले परीक्षण लिखना समय की बर्बादी है और एपीआई स्थिर होने तक निरंतर पुनर्लेखन के लिए प्रवण होता है। मैं भी सुना है कि यह इतना की तरह एक कार्यप्रवाह पालन करना चाहिए:
- परीक्षण जो संकलन नहीं होगा लिखें
- यह संकलन
- इसे हरी
मैं किया गया है सुनिश्चित करें इस वर्कफ़्लो का पालन करने का प्रयास कर रहा है, लेकिन मैं कुछ अजीब चीज़ों के साथ समाप्त होता हूं। उदाहरण के लिए, मेरी एपीआई में मैं इन दोनों तरीकों है:
Handles(string pattern); //had this one already
Handles(IPatternMatcher pattern); //needed this one
मैं विधि मेरी एपीआई के लिए जोड़ा का दूसरा रूप पाने के लिए की जरूरत है। तो, मैं एक मृत सरल परीक्षण के साथ समाप्त हुआ:
public void Handles_SupportsIPatternMatcher()
{
var api=new MyAPI();
api.Handles(new TestPatternMatcher());
}
जो लागू होने के बाद अपशिष्ट की तरह लगता है।
क्या मुझे इस वर्कफ़्लो का पालन करना जारी रखना चाहिए, या इसे सुधारने के तरीके हैं? मैं उन परीक्षणों को लिखने से कैसे रोकूं जो मूल रूप से केवल कंपाइलर त्रुटियों की जांच करते हैं? चूंकि यह सार्वजनिक रूप से उपभोग योग्य एपीआई है, इसलिए मुझे इस तरह के परीक्षणों के बारे में चिंता करनी चाहिए?
"रेड-ग्रीन-रिफैक्टर" "कम्पाइल-कंपाइलस-ग्रीन" की तुलना में काफी बेहतर लगता है: पी –
यह प्रोग्रामर.स्टैकएक्सएन्चेंज.com –
@ सिमॉन व्हाइटहेड के लिए एक बहुत अच्छा सवाल है ... तकनीकी रूप से संकलक त्रुटि भी "लाल" के रूप में गिना जाता है :) – Earlz