2012-03-23 17 views
5

आप एक स्वत: जनरेट विधिउत्पादन कोड के साथ परीक्षण कोड को दोबारा कैसे दोहराएं?

public void setKey(Key key) { 
    this.key = key; 
} 

के साथ शुरू और एक परीक्षण लिखने के लिए यह

@Test 
public void testSetKey() 

तब से 3 महीने अब आप तय करते हैं कि विधि के लिए एक अधिक उपयुक्त नाम changeKeyTo होगा मान लीजिए। आप अपने उत्पादन कोड refactor और अंत: अच्छा, फिर भी, अपने परीक्षण नाम अपरिवर्तित

@Test 
public void testSetKey() 

आप कुछ इस तरह से कैसे निपटते हैं बना रहा है

public void changeKeyTo(Key key) { 
    this.key = key; 
} 

जीवन? क्या आप अपने उत्पादन कोड के साथ स्वचालित रूप से टेस्ट कोड दोबारा कर सकते हैं? क्या ग्रहण इस अनुमति देता है?

+1

http://stackoverflow.com/questions/3317789/is-it-possible-to-automaticly-rename-the-unit का संभावित डुप्लिकेट -टेस्ट-क्लास-कब-नामकरण-द-क्लास – nobeh

+2

@ बेहरोज़्नोबैबट, डुप्लिकेट नहीं - यह एक * विधि * का नाम बदलने के बारे में है जिसे परीक्षण से भी कहा जाता है। यह बिल्कुल जरूरी है, अन्यथा आपका टेस्ट कोड अब संकलित नहीं होता है। टेस्ट क्लास के समान परीक्षण * कक्षा * का नाम बदलना एक अच्छा विकल्प है, जिसकी अनुपस्थिति किसी भी तत्काल समस्या का कारण नहीं बनती है। आपके यूनिट परीक्षण अभी भी संकलित और पूरी तरह से चल रहे हैं, केवल टेस्ट क्लास और टेस्ट क्लास के बीच तार्किक निर्भरता को देखना आपके लिए मुश्किल है। –

+1

यह पेशे के बारे में एक बहुत अच्छा, विचारशील प्रश्न है, और एक आदर्श दुनिया में मैं प्रोग्रामर स्थल का सुझाव दे सकता हूं। इसके बारे में सोचने वाली चीजों में से एक ऑटो-जनरेटेड विधियों को बरकरार रखता है, क्योंकि क्लास पीढ़ी के साथ इन रीफ्रेशेबल होना अच्छा लगता है, और यदि आप "अधिक उचित नाम" चाहते हैं तो इसके लिए एक रैपर कर रहे हैं। लेकिन यह एक संकीर्ण बिंदु है; मुझे लगता है कि प्रश्न व्यापक चर्चा का हकदार है। – hardmath

उत्तर

1

ग्रहण इस समझ नहीं होगा बदलने के लिए: यह केवल विधि अन्य कक्षाएं में या एक ही वर्ग में इस्तेमाल की संदर्भ बदल जाता है।
तुम सच में इस कार्यक्षमता काम करने के लिए चाहते हैं, आप ग्रहण के रिफैक्टरिंग एपीआई के रूप में मैं अपने प्रोजेक्ट के लिए किया था का विस्तार है और यह इस नई कार्यक्षमता दे सकता है।
यदि आप इस पर कोई संदर्भ चाहते हैं तो बस मुझसे पूछें ;-)

+1

हमें और बताएं। मेरा मानना ​​है कि कई लोगों को यह लाभ होगा कि इसे कैसे हल किया जा सकता है – JAM

+1

यहां एक नज़र डालें और आपके सभी प्रश्न हल हो जाएंगे: http://stackoverflow.com/questions/9129689/is-there-any-eclipse-refactoring-api-that मैं-कर सकते हैं-कॉल-प्रोग्राम के रूप में – GingerHead

0

स्वचालित रीफैक्टरिंग समर्थन वाले अधिकांश आईडीई परीक्षण कोड से आपकी विधि में कॉल का नाम बदल देंगे (यदि आप एक ही प्रोजेक्ट में अपना टेस्ट कोड रखते हैं ताकि आईडीई इसे देख सके)। आईआईआरसी ग्रहण भी ऐसा करने में सक्षम था, आखिरी बार मैंने इसका इस्तेमाल किया था। IntelliJ, जो मैं अब उपयोग कर रहा हूँ, यह करता है।