2011-12-14 19 views
7

मैं थोड़ी देर के लिए एनयूनीट का उपयोग कर रहा हूं, और मैं AssertionHelper से अपनी टेस्ट कक्षाएं प्राप्त कर रहा हूं। कि ऐसा करने से, मेरे परीक्षण एक वाक्य रचना की तरह उपयोग करें:क्या एनयूनीट के साथ AssertionHelper का उपयोग करने का कोई कारण नहीं है?

Expect(myValue, Is.EqualTo(3), "value wasn't equal to 3"); 
बजाय

:

Assert.That(myValue, Is.EqualTo(3), "value wasn't equal to 3"); 

NUnit कि मैं देख Assert.That() सिंटैक्स का उपयोग करता साथ लगभग हर उदाहरण है, लेकिन यह कम से लगता है कि Expect() अधिक समझ में आता है (कम से कम मेरे लिए) क्योंकि मैं अपने कोड से एक निश्चित व्यवहार की उम्मीद कर रहा हूं।

क्या न्यूटिट के साथ AssertionHelper का उपयोग करने के लिए कोई नकारात्मक समस्या है, या यह वास्तव में स्वाद/शैली के मामले में नीचे आ गया है?

अग्रिम धन्यवाद!

उत्तर

5

दोनों एक ही कर रहे हैं और दोनों आपको एक कस्टम बाधा निर्दिष्ट करने की अनुमति देता है जो IConstraint इंटरफ़ेस लागू करता है। मेरे दृष्टिकोण से Assert() थोड़ा हल्का वजन है क्योंकि आप किसी विशेष वर्ग से सभी परीक्षण फिक्स्चर को विरासत में नहीं लेते हैं।

0
जिस तरह से मैं अपने चर नाम की

, मेरे परीक्षण अक्सर लाइन के साथ खत्म होता है:

Assert.That(actual, Is.EqualTo(expected)); 

जो IMO पढ़ता बेहतर (अधिक धाराप्रवाह) की तुलना में

Expect(actual, Is.EqualTo(expected)); 
1

AssertionHelper के साथ मुख्य मुद्दा है बहुत कम लोग इसका उपयोग करते हैं, इसलिए नई एनआईएनआईटी फीचर्स और बाधाएं इसमें शामिल नहीं होती हैं। क्योंकि इसे उपेक्षित किया जाता है और व्यापक रूप से उपयोग नहीं किया जाता है, NUnit team is considering removing it या इसे एक अलग पैकेज बनाते हैं।

टीम समुदाय से फीडबैक की तलाश कर रही है कि इसे हटाया जाए या नहीं, इसलिए इस मुद्दे पर टिप्पणी करने में संकोच न करें।

0

रोब प्राइस सही है कि एनयूनीट टीम एस्सारशन हेल्पर को हटा रही है। मैं इसे लगभग 8 महीने तक इस्तेमाल कर रहा था जब मुझे पता चला कि इसे अद्यतन में अप्रचलित कर दिया गया था और मैंने इसे बनाए रखने की पेशकश की थी। इसके आसपास की चर्चा वास्तव में धीरे-धीरे चल रही थी और मैं थोड़ा अपमानजनक था, इसलिए मैंने NUnit.StaticExpect लिखा जो नुजेट पर है और आपके कोड में "स्थिर" आयात के साथ, एस्सारशन हेल्पर के लिए ड्रॉप-इन प्रतिस्थापन प्रदान करता है। मैंने एक उत्पादन परियोजना को चालू कर दिया और यह अच्छी तरह से काम कर रहा है।

मैंने उस समय के आसपास एक अलग पथ पर भी शुरू किया: NExpect जो Chai की अधिक अनुशंसा करता है लेकिन Jasmine के समानता के साथ सिंटैक्स प्रदान करता है। नेक्सपेक्ट एक बहुत ही उपयोगी राज्य में है - मैं इसे अपनी परियोजनाओं में थोड़ी देर के लिए उपयोग कर रहा हूं। वहाँ एक demo project जो आप के माध्यम से दावे के विकास का पालन करने के लिए उपयोग कर सकते है:।

  1. जोर {विशेष विधि} (जैसे Assert.AreEqual)
  2. Assert.That ({मूल्य या लैम्ब्डा} {वर्तमान काल बाधा})
  3. AssertionHelper उपयोग
  4. NUnit.StaticExpect उपयोग
  5. Nexpect उपयोग

साथ ही टी का एक उदाहरण दे रही है वह NExpect की विस्तारशीलता। उम्मीद है की यह मदद करेगा।

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

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