2012-08-26 11 views
29

मुझे उत्सुकता है कि स्थिरता सेटअप स्थिर क्यों होना चाहिए? ऐसा लगता है कि प्रति स्थिरता आवृत्ति है जो स्थिरता के जीवनकाल को साझा करने के लिए मेरे लिए अधिक सहज महसूस करता है।कक्षा प्रारंभिक विधि क्यों स्थिर होनी चाहिए?

हां, इन्हें कन्स्ट्रक्टर में प्रारंभ किया जा सकता है, लेकिन फिर मुझे लगता है कि वे परीक्षण धावक के नियंत्रण की पहुंच से बाहर हैं।

क्या डिजाइन आवश्यकताओं या दार्शनिकों ने निर्धारित किया कि सेटअप विधि स्थैतिक होनी चाहिए?

उत्तर

38

कक्षा में सभी परीक्षणों के लिए कक्षा प्रारंभिक विशेषता के साथ विधि एक बार चलती है। कक्षा का एक उदाहरण हर बार एक परीक्षण चलाया जाता है, इसलिए इसे केवल एक बार चलाने के लिए स्थिर होना चाहिए।

आप हर परीक्षा के लिए प्रारंभ करना चाहते हैं, तो आप TestInitialize विशेषता है, जो जब भी वर्ग का एक नया उदाहरण (एक परीक्षण चलाने से पहले) बनाया जाता है चलेंगे उपयोग कर सकते हैं।

आप अधिक जानकारी की आवश्यकता है, तो आप देख सकते हैं:

That Pesky MSTest Execution Ordering

+11

धन्यवाद, मुझे नहीं पता था एक उदाहरण प्रत्येक परीक्षा के लिए बनाया गया था। – ProfK

+5

मुझे नहीं लगता कि विधि को केवल एक बार चलाने के लिए स्थिर होना चाहिए। परीक्षण ढांचा हमारे द्वारा परीक्षण कक्षाओं को शुरू और निष्पादित कर रहा है। यह सभी परीक्षण विधियों को चलाने से पहले और बाद में आसानी से एक गैर स्थैतिक विधि को कॉल कर सकता है। – d512

+0

यदि यह स्थैतिक नहीं होगा तो प्रारंभिकरण सभी परीक्षण उदाहरणों के साथ साझा नहीं किया जा सका। अर्थात। यदि आपको सभी परीक्षणों द्वारा उपयोग की जाने वाली नकली सेवा शुरू करने की आवश्यकता है। – user3285954