मैं विजुअल स्टूडियो के साथ टेस्ट ड्राइव डेवलपमेंट में अपना पहला कदम बना रहा हूं। वीएस 2010 के साथ जेनेरिक कक्षाओं को कार्यान्वित करने के बारे में मेरे कुछ प्रश्न हैं।विजुअल स्टूडियो 2010 और टेस्ट ड्राइव डेवलपमेंट
सबसे पहले, मान लीजिए कि मैं एक ऐरेलिस्ट के अपने संस्करण को कार्यान्वित करना चाहता हूं।
[TestMethod]
public void Add_10_Items_Remove_10_Items_Check_Size_Is_Zero() {
var myArrayList = new MyArrayList<int>();
for (int i = 0; i < 10; ++i) {
myArrayList.Add(i);
}
for (int i = 0; i < 10; ++i) {
myArrayList.RemoveAt(0); //should this mean RemoveAt(int) or RemoveAt(T)?
//VS doesn't know. Any work arounds?
}
int expected = 0;
int actual = myArrayList.Size;
Assert.AreEqual(expected, actual);
}
मैं हिट करने के लिए
ctrl + VS 2010 क्षमता का उपयोग कर रहा: मैं निम्नलिखित परीक्षण (मैं इस मामले MSTest में उपयोग कर रहा हूँ) बनाने के द्वारा शुरू करते हैं।
और इसे चलने पर कक्षाएं/विधियां लागू करें।
- जेनेरिक कक्षाओं को लागू करते समय मुझे कुछ परेशानी हो रही है। उदाहरण के लिए, जब मैं
.Add(10)
विधि को परिभाषित करता हूं, तो वीएस को पता नहीं है कि क्या मैं एक सामान्य विधि (जैसे क्लास सामान्य है) याAdd(int number)
विधि का इरादा रखता हूं। क्या इसे अलग करने का कोई तरीका है? - वही प्रकार के साथ हो सकता है। आइए मान लें कि मैं
MyStack
स्टैक को कार्यान्वित कर रहा हूं और मैं परीक्षण करना चाहता हूं कि यदि मैं पुश और तत्व के बाद इसे पॉप करता हूं, तो स्टैक अभी भी खाली है। हम सभी जानते हैं कि पॉप को कुछ वापस करना चाहिए, लेकिन आमतौर पर, इस परीक्षण के कोड को इसकी परवाह नहीं करनी चाहिए। विजुअल स्टूडियो तब सोचता है कि पॉप एक शून्य विधि है, जो वास्तव में नहीं चाहता कि कोई क्या चाहता है। इससे निपटने के लिए कैसे? प्रत्येक विधि के लिए, क्या मुझे ऐसे परीक्षण करके शुरू करना चाहिए जो "बहुत विशिष्ट" हैं, जैसे कि यह स्पष्ट है कि विधि को कुछ वापस करना चाहिए, इसलिए मुझे इस तरह की अस्पष्टता नहीं मिलती है? भले ही परिणाम का उपयोग न करें, क्या मेरे पासint popValue = myStack.Pop()
जैसा कुछ होना चाहिए? - सामान्य कक्षाओं में मुझे परीक्षण कैसे करना चाहिए? केवल एक सामान्य प्रकार के प्रकार के साथ परीक्षण करें? मैं
int
एस का उपयोग कर रहा हूं, क्योंकि उनका उपयोग करना आसान है, लेकिन क्या मुझे विभिन्न प्रकार की वस्तुओं के साथ परीक्षण करना चाहिए? आप आमतौर पर इस पर कैसे जाते हैं? - मुझे लगता है कि .NET के लिए TestDriven नामक एक लोकप्रिय उपकरण है। वीएस 2010 रिलीज के साथ, क्या यह अभी भी उपयोगी है, या इसकी कई विशेषताएं अब वीएस 2010 का हिस्सा हैं, जो इसे थोड़ी बेकार प्रदान करती है?
- जब भी मैं अपने परीक्षण कोड में एक नई संपत्ति को परिभाषित करता हूं, और मेरे लिए उस विधि को उत्पन्न करने के लिए वीएस से पूछता हूं, यह गेटटर और एक सेटटर दोनों उत्पन्न करता है। अगर मेरे पास
int val = MyClass.MyProperty
जैसा कुछ है तो मैं समझना चाहता हूं कि (कम से कम अभी तक) मैं केवल गेटर को परिभाषित करना चाहता हूं।
धन्यवाद
# 4 के लिए, क्या आप अंदरूनी दृश्य स्टूडियो से परीक्षण चलाने या सामान्य रूप से परीक्षण चलाने के लिए मतलब है? विजुअल स्टूडियो के अंदर – R0MANARMY
। –
आईवी आपके पास 5 अलग-अलग प्रश्न हैं, क्या यह हर किसी के जीवन को अलग प्रश्न के रूप में पोस्ट करने में आसान नहीं होगा? –