सी # का उपयोग कर एमएसटेस्ट के साथ कक्षा विशेषताओं और विधि विशेषताओं की उपस्थिति का परीक्षण कैसे करें?सी # का उपयोग कर एमएसटेस्ट के साथ इकाई परीक्षण विशेषताओं को कैसे करें?
उत्तर
C# Extension method for checking attributes
public static bool HasAttribute<TAttribute>(this MemberInfo member)
where TAttribute : Attribute
{
var attributes =
member.GetCustomAttributes(typeof(TAttribute), true);
return attributes.Length > 0;
}
प्रतिबिंब का उपयोग करें, उदाहरण के लिए यहां नुनिट + सी # में एक है, जिसे आसानी से एमएसटेस्ट में अनुकूलित किया जा सकता है।
[Test]
public void AllOurPocosNeedToBeSerializable()
{
Assembly assembly = Assembly.GetAssembly(typeof (PutInPocoElementHere));
int failingTypes = 0;
foreach (var type in assembly.GetTypes())
{
if(type.IsSubclassOf(typeof(Entity)))
{
if (!(type.HasAttribute<SerializableAttribute>())) failingTypes++;
Console.WriteLine(type.Name);
//whole test would be more concise with an assert within loop but my way
//you get all failing types printed with one run of the test.
}
}
Assert.That(failingTypes, Is.EqualTo(0), string.Format("Look at console output
for other types that need to be serializable. {0} in total ", failingTypes));
}
//refer to Robert's answer below for improved attribute check, HasAttribute
कुछ काम के साथ, मुझे लगता है कि आप 'IsTypeSerializable' को एक सामान्य विधि बना सकते हैं जो किसी भी विशेषता को संभाल सकता है। –
@Robert, बिल्कुल, यह System.Type पर एक एक्सटेंशन के रूप में भी बेहतर पढ़ सकता है, जिसमें मैं इसे – dove
@Robert के बिल्ली के लिए शामिल कर सकता हूं, उसके साथ थोड़ा खिलौना था और यह काफी कामयाब था लेकिन लगता है कि यह केवल अव्यवस्था का जवाब होगा ऊपर। मेरा जवाब कंसोल पर असफल प्रकारों को ध्यान में रखते हुए, दिमाग में परीक्षण के साथ बहुत निश्चित है। एक्सटेंशन विधि में हस्ताक्षर हो सकते हैं जैसे: सार्वजनिक स्थैतिक बूल IsTypeSerializeable (यह सिस्टम। टाइप प्रकार, सिस्टम। टाइप चेक टाइप) // हालांकि आप दूसरे पैरामीटर के रूप में केवल एक विशेषता प्राप्त करना चाहते हैं, मुझे थोड़ा और काम चाहिए जो मैं चाहता हूं केवल तभी करें जब इसे बुलाया जाए। ठीक है, मैं इसे डाल दूंगा;) – dove
खुद के दो सहायक कार्य (प्रतिबिंब का उपयोग) लिखें इन पंक्तियों के साथ:
public static bool HasAttribute(TypeInfo info, Type attributeType)
public static bool HasAttribute(TypeInfo info, string methodName, Type attributeType)
तो फिर तुम इस तरह परीक्षण लिख सकते हैं:
Assert.IsTrue(HasAttribute(myType, expectedAttribute));
इस तरह से आप की जरूरत नहीं है यदि आपके परीक्षण विधियों में/else/foreach या अन्य तर्क का उपयोग करें। इस प्रकार वे कहीं अधिक स्पष्ट और पठनीय हो जाते हैं।
HTH
थॉमस
के लिए परीक्षण के एकाधिक पुन: रनों को सहेजने के लिए सभी असफल इकाई को कंसोल करने के लिए आउटपुट किया गया है, आपके पास एक बिंदु है लेकिन मेरा परीक्षण (और अन्य जिन्हें मैंने यहां नहीं रखा है) यह है कि एक टेस्ट रन के साथ आपको कंसोल पर आउटपुट करने वाली सभी असफल इकाई मिलती है , प्रत्येक असफल इकाई के लिए परीक्षण के कई पुन: रनों को सहेजते हुए, जैसा कि रॉबर्ट ने दिया है, अभी भी और अधिक सुरुचिपूर्ण तरीके हैं। – dove
- 1. एनयूनीट परीक्षण चलाने के भीतर रनटाइम पर इकाई परीक्षण विधि विशेषताओं को कैसे प्राप्त करें?
- 2. इकाई परीक्षण पर परीक्षण स्क्रिप्ट का उपयोग कब करें?
- 3. एमएसटेस्ट मामलों को वर्गीकृत करना
- 4. इकाई मशीन का परीक्षण कैसे करें?
- 5. सी/सी ++ विशेष सीपीयू विशेषताओं का उपयोग
- 6. एमबीयूनीट से एमएसटेस्ट
- 7. बहुत कम इकाइयों के साथ इकाई परीक्षण कोड कैसे करें
- 8. एक इकाई परीक्षण ढांचे का उपयोग कब करें (बनाम केवल आवेषण का उपयोग कर)?
- 9. इकाई को अपने एपीआई का परीक्षण कैसे करें?
- 10. सी # इकाई परीक्षण
- 11. PHPUnit के साथ अपवाद परीक्षण इकाई कैसे करें?
- 12. इकाई परीक्षण के भीतर से रनटाइम पर इकाई परीक्षण विधि का नाम कैसे प्राप्त करें?
- 13. अपवादों के लिए इकाई परीक्षण कैसे करें?
- 14. MSTest इकाई परीक्षण श्रेणियों
- 15. स्प्रिंग रू के साथ जुनीट परीक्षण का उपयोग कैसे करें? (EntityManager के साथ समस्याएं)
- 16. संपत्ति सजावट का उपयोग करके विशेषताओं को कैसे सेट करें?
- 17. मैं कैसे NSAssert के लिए परीक्षण कर सकते हैं iPhone की इकाई परीक्षण रूपरेखा का उपयोग कर
- 18. इकाई परीक्षण सेटअप और टियरडाउन
- 19. इकाई डेटा संरचना का परीक्षण
- 20. एमएसटेस्ट, डेटासोर्सएट्रिब्यूट - इसे रनटाइम जेनरेट फ़ाइल के साथ कैसे काम करना है? कुछ परीक्षणों के लिए
- 21. रुपयेपेक का उपयोग कर ईमेल भेजने का परीक्षण कैसे करें?
- 22. अकेले jQuery के साथ एक्सएमएल विशेषताओं का विश्लेषण कैसे करें?
- 23. डेल्फी XE स्टार्टर एडीशन के साथ क्या परीक्षण ढांचे/इकाई परीक्षण का उपयोग करने के
- 24. संगम का उपयोग कर परीक्षण मामलों का प्रबंधन कैसे करें?
- 25. PHPUnit का उपयोग कर Symfony2 में डेटाबेस-भारी इकाई परीक्षण कैसे सेट करें?
- 26. वाटिन - पॉपअप पृष्ठों के साथ साइट का परीक्षण कैसे करें
- 27. डेटाबेस क्वेरीज के साथ किसी ऑब्जेक्ट का परीक्षण कैसे करें
- 28. फिक्स्चर के साथ परीक्षण इकाई फ्रेमवर्क
- 29. सीटीपीएस के साथ सी ++ कक्षाओं का उपयोग कैसे करें?
- 30. इकाई परीक्षण
यह overkill की तरह लगता है। आप बस स्रोत कोड का निरीक्षण कर सकते हैं। – jason
असल में इस तरह की चीज रिफैक्टरिंग ब्लंडर्स को पकड़ने के लिए काफी अच्छी है। यह सुनिश्चित करना कि गुणों पर निर्भर कोड अच्छी तरह से परीक्षण किया जाता है (और सभ्य त्रुटि संदेश देता है) भी महत्वपूर्ण है। –
और टीडीडी –