9

वहाँ एक उत्पाद/परियोजना है कि आप कहते हैं एक MVC परियोजना स्थिर नियंत्रक की तरह नामकरण परंपराओं वर्गों के अंत कि नियंत्रक से विरासत और/या एक को लागू पर संलग्न किया जा रहा के लिए जाँच करने के लिए सम्मेलनों को परिभाषित करने की अनुमति होगी है एक विशेषता के साथ एक विधि सजाने के दौरान कुछ विधि हस्ताक्षर।स्टेटिक फ्रेमवर्क कन्वेंशन के लिए जांच की जा रही

मैं मूल रूप से हमारी टीम पर आने वाले नए डेवलपर्स के लिए कुछ गार्ड रेल सेट अप करने का तरीका ढूंढ रहा हूं, जहां हमारे पास सम्मेलनों का स्पष्ट सेट है, जिनमें से कुछ का उपयोग प्रतिबिंब के माध्यम से गतिशील रूप से तारों को तारित करने के लिए किया जाता है। यह देखते हुए कि यह प्रतिबिंब वायर-अप असफल हो जाएगा क्योंकि असंगत हस्ताक्षर हमारी रैंप अप प्रक्रिया के लिए एक बड़ा वरदान होगा।

मुख्य विशेषताएं आवश्यक:

  • स्टेटिक/विभिन्न आधार पर टूटा नियम के लिए जाँच विशिष्ट विशेषताओं
  • नियमों के विभिन्न सेट (रेगुलर एक्सप्रेशन से या एक जादूगर के माध्यम से) के साथ सजाया तरीकों को लक्षित करने के
  • की क्षमता समय संकलित करें परियोजनाओं के प्रकार। (उदाहरण: एक MVC अनुप्रयोग, एक वेब प्रपत्र अनुप्रयोग के लिए एक अलग सेट, और .BLL साथ प्रत्यय एक कक्षा लाइब्रेरी के लिए एक अलग सेट के लिए सम्मेलनों का एक सेट)

किसी भी इनपुट सुझाव की सराहना की जाती है, हालांकि मुझे लगता है कि आप से पूछना केवल तभी जवाब दें यदि आप जानते हैं कि ये सुविधाएं समर्थित हैं।

+0

क्या आपने FxCop/कोड विश्लेषण का प्रयास किया था? – BrokenGlass

उत्तर

4

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

यहाँ एक त्वरित उदाहरण सुनिश्चित करती है कि बात यह है कि सभी सेवा तरीकों कुछ है कि एक BaseResponse वस्तु विरासत में वापसी:

[Test] 
public void All_IMyService_methods_should_return_a_BaseResponse() 
{ 
    var methods = typeof (IMyService).GetMethods(); 
    foreach (var methodInfo in methods) 
     Assert.That(typeof (BaseResponse).IsAssignableFrom(methodInfo.ReturnType), "Service Method " + methodInfo.Name + " does not return a BaseResponse"); 
} 

मुझे यकीन है कि किसी ने कुछ बेहतर/अधिक स्वचालित होगा हूँ, लेकिन यह मेरे लिए काम किया।

+0

यह वास्तव में एक अच्छा तरीका है, मैं इसे देखने के लिए एक शॉट दूंगा कि क्या यह इस सप्ताह के अंत में उपयोग किए जाने वाले उपयोग मामलों को कवर करेगा। – Gent

+1

मुझे यह पसंद है। यह रूप में लचीला के रूप में आप प्राप्त करने के लिए जा रहे हैं है। यह केवल प्रतिबिंब की लचीलापन से सीमित है। जो है, कहने के लिए, तो आप शायद कुछ है कि परीक्षण नहीं किया जा सकता है में नहीं चलेंगे। –

+0

धन्यवाद मैं प्रतिबिंब के माध्यम से अपने सभी मामलों को कवर करने में सक्षम था! – Gent

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