2010-07-05 11 views
17

यूनिट परीक्षणों को व्यवस्थित करने के तीन तरीके हैं: प्रति स्थिरता, कक्षा या फ़ीचर का परीक्षण करें। लेकिन टेस्ट क्लास के लिए न्यूटिट विशेषता को टेस्टफिक्चर कहा जाता है। क्या इसके लिए कोई ऐतिहासिक कारण हैं?टेस्ट क्लास के बजाय testFixture क्यों?

उत्तर

11

मुख्य ऐतिहासिक कारण यह है कि NUnit JUnit से एक सीधे बंदरगाह के रूप में जीवन शुरू किया था और JUnit यह परीक्षण स्थिरता कहा जाता है।

NUnit 1.0 मेरे समय से पहले था, लेकिन मुझे बताया गया है कि यह जुनीट में सभी .java फ़ाइलों को .cs फ़ाइलों में बदलने और संकलन करने का प्रयास करके शुरू किया गया है। इसे वहां से तय किया गया था और एक यूआई जोड़ा गया था। जब मैं न्यूटिट 2.0 के लिए शामिल हुआ, तब भी एनयूनिट 1.0 में IsVisualAgeForJava नामक एक विधि थी क्योंकि उस समय जुनीट के लिए विशेष व्यवहार था।

एनयूनीट 2.0 में हमारा उद्देश्य न्यूटिट को और अधिक बनाना था। नेटिश। इसलिए हमने विशेषताओं और अन्य सामानों का एक गुच्छा जोड़ा। हम सभी जावा पृष्ठभूमि से आए और वर्षों से जुनीट के साथ काम किया था। यह [TestFixture] का उपयोग करने के लिए काफी प्राकृतिक लग रहा था।

4

अब जब आप इसके बारे में पूछते हैं, तो मैंने इसे देखा।
एक परीक्षण स्थिरता तय आधारभूत स्थिति है जिसे परीक्षण चलाने से पहले स्थापित किया जाना चाहिए, जैसे कि परिणाम अनुमानित और दोहराने योग्य हैं। यूनिट परीक्षण ढांचे में, हम टेस्ट फ़िक्स्चर को बनाने/नष्ट करने के लिए SetUp और TearDown विशेषताएँ/विधियों का उपयोग करते हैं (उदाहरण के लिए सही ऑब्जेक्ट्स के साथ आवृत्ति चर प्रारंभ करें)।

13

मैं माइक टू की प्रतिक्रिया का सम्मान करता हूं, लेकिन मैं यह कहूंगा कि एनयूनीट टीम को यह बहुत गलत लगता है, और [TestFixture] का उपयोग न्यूटिट के चेहरे पर एक अर्थपूर्ण वार्ट है। एक टेस्ट क्लास एक स्थिरता नहीं है। जुनीट के संबंध में मैंने जो खोला है, उससे मुझे टेस्ट क्लास के परीक्षण परीक्षण के रूप में कोई संदर्भ नहीं मिला है, न ही मुझे परीक्षण कक्षाओं का जिक्र करते हुए "परीक्षण फिक्स्चर" के बारे में बहुत सी चर्चा मिली है। इसके बजाय, फिक्स्चर के बारे में सभी जुनीट/xUnit चर्चा सेटअप और टियरडाउन से संबंधित है, जो निश्चित रूप से वास्तविक परीक्षण फिक्स्चर सेट करने के लिए उपयोग की जाने वाली सामान्य विधियां हैं।

ध्यान दें कि NUnit 2.5 में, आप [TestFixture] एनोटेशन निकाल सकते हैं।

अद्यतन: (जुलाई 2012)

मैं सिर्फ ककड़ी बुक पढ़ रहा था और पेज 99 पर, लेखक मैट वेन का उपयोग करने का मूल बताते हैं "स्थिरता।" मैं बोली:

वहाँ एक दृढ़ परीक्षण के अंतर्गत परीक्षण सिस्टम और सिस्टम के बीच की कड़ी बुला की एक लंबी परंपरा (हार्डवेयर दुनिया है, जहां परीक्षण जुड़नार जन्म लिया है से आ रही है)। यह "गोंद कोड" भूमिका है जिसे हमने इस पुस्तक में ऑटोमेशन कोड के रूप में संदर्भित किया है। एफआईटी परीक्षण ढांचा शब्द के इस अर्थ का उपयोग करता है। कुछ यूनिट परीक्षण उपकरण (जैसे एनयूनीट) ने परीक्षण केस क्लास को एक स्थिरता के रूप में संदर्भित करके इस मुद्दे को और भ्रमित कर दिया है। एक सर्वव्यापी भाषा के लिए बहुत कुछ! (Wynne & हेलसॉय, 2012)

+0

मैं आपसे सहमत हूं। वो एक गलती थी। एक बार ऐसा होने पर वापस लेना मुश्किल होता है। हालांकि मुझे लगता है कि उस समय जुनीट में समान व्यवहार था। मैं पूरी तरह गलत हो सकता था। यह सब 2002 के आरंभ में था और मैं इसे गलत तरीके से याद कर सकता था। किसी भी तरह से आप अपने दावे में सही हैं कि एक टेस्ट क्लास और एक स्थिरता अलग-अलग चीजें हैं। –

+2

धन्यवाद माइक टू, मैं हमेशा हमारे शिल्प में परियोजनाओं के पीछे भंडारित इतिहास से मोहक हूं। मुझे यह भी एहसास है कि अगर मुझे यह पसंद नहीं है, तो मुझे नहीं चाहिए बल्कि एक पैच जमा करना चाहिए। मुझे आश्चर्य है कि क्या मैं अत्यधिक पेडेंटिक हूं क्योंकि किसी और ने इस बदलाव को आज तक नहीं बनाया है। – ybakos

+0

मैंने इसे दो बार बदलने पर विचार किया। मैंने पीछे की संगतता के साथ मुद्दों की एक दीवार मारा।मैंने साल पहले नियमित रूप से न्यूटिट काम बंद कर दिया था, इसलिए मैं इसे भविष्य में बदलने का इरादा नहीं रखता हूं। –

संबंधित मुद्दे