2008-12-19 18 views
12

मैं कई अलग अलग वर्गों के लिए मेरी Assert.AreEqual विस्तार करने के लिए प्यार करता हूँ, जाना जाता है एक निश्चित रूप से CollectionAssert है कैसे विस्तार था, लेकिन मैं के रूप में कुछ और इस तरह के बारे में सोच सकते हैं: ImageAssert, XmlAssert आदि ..आप अपने जोर वर्ग

क्या आपने अपनी खुद की संपत्ति कक्षाएं बनाई थीं? और आप किस तरह का नया बनाना चाहते हैं?

उत्तर

0

मैं बस के रूप में मैं ऊपर लिखा था (मेरे सवाल में) ImageAssert के एक कार्यान्वयन जोड़ दिया है मैं अपने समाधान है कि नमूने

0

मेरे कई परीक्षण किसी ऑब्जेक्ट को लोड करने के आसपास घूमते हैं (एक कटिंगपैथ की तरह) एक ज्ञात अच्छी स्थिति के साथ .. परीक्षण करना, फिर परिणाम को लोड ऑब्जेक्ट से तुलना करना। यदि वे अलग-अलग होते हैं तो कोड में बदलाव के कारण कुछ हुआ 'हुआ'।

यह दृष्टिकोण बहुत समय बचाता है और आवश्यकता होने पर कस्टम तुलना की अनुमति देता है।

4

मुझे आर्टर्ट क्लास का अनुभव पसंद है, लेकिन ऐसा कुछ चाहिए जो एक सामान्य सत्यापन ढांचे के रूप में अधिक काम करेगा। मैं रोजर Alsing के article विस्तार तरीकों का उपयोग कर पर साथ शुरू किया था, और अब एक प्रणाली है कि काम करता है की तरह है:

Enforce.That(variable).IsNotNull(); 
Enforce.That(variable).IsInRange(10, 20); 
Enforce.That(variable).IsTypeOf(typeof(System.String)); 
etc. 

किसी भी प्रवर्तन विफल रहता है, यह एक अपवाद फेंकता है। मैं रिफैक्टरिंग पर विचार कर रहा हूं ताकि मैं एक गैर-महत्वपूर्ण मूल्यांकन भी शामिल कर सकूं जो अपवाद नहीं फेंकता है। कुछ चेक की तरह हैं। यह लागू करने के एक प्रकार के रूप में है। जो बूलियन लौटाएगा, लेकिन समान हस्ताक्षर के साथ विस्तार विधियां हैं।

मुझे इस दृष्टिकोण के बारे में क्या पसंद है, अब तक यह है कि मैं इन्हें अपने यूनिट परीक्षणों में उपयोग कर सकता हूं, साथ ही माइक्रोसॉफ्ट का संदर्भ दिए बिना मेरे वास्तविक कोड में प्री-सत्यापन और पोस्ट-सत्यापन की चिंताओं के लिए भी उपयोग कर सकता हूं। VisualStudio.QualityTools। यूनिटटेस्टफ्रेमवर्क असेंबली। मैंने इसे अपने रूट ढांचे में अपने आवेदन ढांचे के लिए रखा है, और लागू रूट पर है, इसलिए इसे प्राप्त करना बहुत आसान है।

0

मुझे लगता है कि यदि आप डुप्लिकेशंस को कम करने के लिए अपने परीक्षणों को दोबारा कर रहे हैं तो आप उप-उत्पाद के रूप में अपना खुद का ढांचा तैयार कर सकते हैं, और निश्चित रूप से आपके परीक्षण ढांचे में आपके मदद में समझने वाले सहायक मददगार होंगे।

एक उदाहरण मैं मन में है जब परीक्षण एक्सएचटीएमएल रिपोर्ट हम परीक्षण ऐसा ही कुछ देखा के साथ समाप्त हो गया था:

assertCoverageEquals(45.5); 

जहां ज़ोर कवरेज पीछे था कुछ की तरह:

assertPercentage(COVERAGE_ID, 45.5); 

और फिर पीछे वह ऐसा कुछ था जो xpath का उपयोग मूल्य प्राप्त करने के लिए करता था और दूसरी विधि जो जानता था कि प्रारूपण प्रतिशत के लिए क्या था।

4

उस तरह के और अधिक सुनने के लिए खुशी होगी:

using MyStuff; 

using A = Microsoft.VisualStudio.TestTools.UnitTesting.Assert; 

namespace Mytestproj.Tests 
{ 
    public static class Assert 
    { 
     public static void AreEqual(object expected, object actual) 
     { 
      A.AreEqual(expected, actual); 
     } 

     // my extension 
     public static void AreEqual(MyEnum expected, int actual) 
     { 
      A.AreEqual((int)expected, actual); 
     } 

     public static void IsTrue(bool o) 
     { 
      A.IsTrue(o); 
     } 

     public static void IsFalse(bool o) 
     { 
      A.IsFalse(o); 
     } 

     public static void AreNotEqual(object notExpected, object actual) 
     { 
      A.AreNotEqual(notExpected, actual); 
     } 

     public static void IsNotNull(object o) 
     { 
      A.IsNotNull(o); 
     } 

     public static void IsNull(object o) 
     { 
      A.IsNull(o); 
     } 
    } 
} 
संबंधित मुद्दे