मैंने टीडीडी के बारे में पढ़ा है और मैंने इसे अपनी नई परियोजना पर आजमाया है।टेस्ट संचालित विकास कैसे सही तरीके से करें?
मैं समझता हूँ कि TDD में यह ब्लैकबॉक्स परीक्षण की तरह है, यानी यह मायने रखता है क्या बजाय कैसे तो, मैंने निष्कर्ष निकाला और के रूप में कई पदों पर इसके बारे में पढ़ने के बाद निजी तरीकों का परीक्षण बंद कर दिया यह सही तरीका नहीं है।
हालांकि, मैं इन कारणों से ऐसा करने में विफल रहा।
मैं आपको उदाहरण के अनुसार दिखाऊंगा: मेरे पास एक प्रोग्राम है जो एक पाठ अनुच्छेद पढ़ता है इसलिए मैंने अपनी टेस्ट विधि (tdd step1 के लिए) में ऐसा कुछ लिखा।
/*
My program reads a textual paragraph from file and saves it to my custom paragraph object;
*/
तो तदनुसार मैं लाल मामला बनाने के लिए इस विधि का बना दिया।
public void paragraphMustNotBeNullTest(){
File f = new File("some path")
ParagraphReader reader= new ParagraphReader();
reader.read();
assertNotNull("my custom paragraph is null",reader.getCustomParagraph());
}
मैं कोड निम्नलिखित लिखा है:
package com.olabs.reader;
import java.io.FileInputStream;
import java.io.InputStream;
import com.olabs.models.OlabsParagraph;
public class Para {
private String paragraphText = null;
private Paragraph oParagraph = null;
public Paragraph getCustomParagraph() {
return oParagraph;
}
public void setoParagraph(Paragraph oParagraph) {
this.oParagraph = oParagraph;
}
public void read() {
InputStream is = new FileInputStream("abc......");
// ..
String text = is.read(); // assume I got text read from file.
this.paragraphText = text;
}
private void createCustomParagraph()
{
Paragraph p = new Paragraph();
p.setText(paragraphText);
p.setId(1);
p.setType("Story");
...........
}
private void countWords()
{
// counting words in paragraph logic
}
}
अब समस्या मैं पहले से पता है कि मैं countingwords और निजी तरीके के रूप में createCustomParagraph का उपयोग किया जाएगा है।
उन्हें सार्वजनिक रूप बनाने और TDD चक्र का पालन करें:
तो, कि मामलों में मैं के साथ जाना चाहिए।
उन्हें निजी बनाएं।
उनके लिए परीक्षण हटाएं (क्योंकि विधियां अब निजी और परीक्षण के लिए पहुंच योग्य नहीं हैं)। मुझे लगता है कि यह tdd करने के लिए काफी बोझिल और गलत तरीका है।
मैं this.Everyone के बारे में उलझन में हूँ लिखने कोड आप एक असफल परीक्षण लिखने के बाद ही कहते हैं, लेकिन यहाँ अगर मैं जानता हूँ कि मैं एक निजी विधि तो कैसे मैं यह कर देगा लिखने के लिए जा रहा हूँ?
यदि मैं कहीं गलत हूं तो मैं आपको सही करने का अनुरोध करता हूं। इसके अलावा यदि संभव हो तो कुछ वास्तविक उदाहरण दे ...
इसके अलावा, मुझे डर है कि समय के सबसे अधिक मैं संपादन परीक्षण या उन्हें को हटाने पहुँच विनिर्देशक समस्याओं या पुनर्रचना की वजह से ...
नोट किया जाएगा: यह एक डुप्लिकेट प्रश्न नहीं है। मेरे पास रीयलटाइम स्थितियों के लिए अच्छा जवाब नहीं है। मैंने देखा है कि सभी उदाहरणों में, वे डिफ़ॉल्ट या सार्वजनिक एक्सेस विनिर्देशकों के साथ केवल एक वर्ग दिखाते हैं, इसलिए वे वास्तव में नहीं दिखाते कि रीयलटाइम प्रोजेक्ट में वास्तव में कैसे काम करना है।
कुछ निजी तरीकों से आपकी निजी विधियां (प्रत्यक्ष या अप्रत्यक्ष रूप से) हैं। आप सार्वजनिक तरीकों का परीक्षण करते हैं। Ergo, आप निजी तरीकों का परीक्षण (परोक्ष रूप से)। क्या आपको बिल्कुल भ्रमित करता है? – Turing85
तो क्या आपका मतलब reader.read() है; विधि कॉल पर्याप्त है? यानी मैं निजी तरीकों को लिखने पर जाऊंगा, मैं इन नए निजी तरीकों के लिए लाल हरे रंग के पीले चक्र से नहीं जाऊंगा (मुझे लगता है कि यह तत्काल होना चाहिए कि यह निजी होना चाहिए) मैं बना हूं? – swapyonubuntu
यदि आप एक नई (और सबसे अधिक संभावना वाली छोटी गाड़ी) निजी विधि (जिसे सार्वजनिक विधि द्वारा उपयोग किया जाता है) पेश करते हैं, तो एक परीक्षण लिखें जो विफल रहता है (और ऐसा इसलिए करता है क्योंकि निजी विधि सही तरीके से काम नहीं कर रही है)। – Turing85