2011-06-28 8 views
21

XUnit में NUnit के [TestFixtureSetUp] के बराबर क्या है? हमने खोज की है और पाया है कि IUseFixture [testFixtureSetUp] के समतुल्य है लेकिन यह अपेक्षा के अनुसार काम नहीं कर रहा है। जैसा कि हमने खोजा है (एनयूनीट के मामले में), हमने पाया कि [testFixtureSetUp] स्थिरता में सभी परीक्षण चलाने से पहले केवल एक बार कोड निष्पादित करने के तरीकों को चिह्नित किया गया है। [TestFixtureSetUp] के बराबर xUnit में IUseFixture जैसा हमने खोजा है। लेकिन परीक्षण के दौरान, हमने पाया कि IUseFixture की 'SetFixture' विधि को प्रत्येक टेस्ट से पहले बुलाया जा रहा है (सभी विधि के लिए केवल एक बार नहीं)।xUnit ढांचे: XUnit में NUnit के [TestFixtureSetUp] के समतुल्य?

कृपया हमें मार्गदर्शन करें कि हम उपरोक्त xUnit में कैसे प्राप्त कर सकते हैं। अगर हम कुछ गलत समझ रहे हैं तो हमें भी सही करें। धन्यवाद

उत्तर

27

XUnit में [TestFixtureSetUp] का कोई प्रत्यक्ष समकक्ष नहीं है, लेकिन आप समान कार्यक्षमता प्राप्त कर सकते हैं। This page एनयूनीट और एक्सयूनीट के साथ-साथ कुछ अन्य सी #/एनईटी परीक्षण ढांचे के बीच अनुवाद बताता है)। हालांकि, XUnit बड़े पैमाने पर सेटअप/टियरडाउन से छुटकारा पाता है (this article बताता है कि यह निर्णय क्यों बनाया गया था)। इसके बजाय, आपको IUseFixture<T> नामक एक इंटरफ़ेस को लागू करने के लिए परीक्षण सूट की आवश्यकता है जो स्थिरता के लिए कुछ डेटा प्रारंभ कर सकता है।

आप this overview of XUnit पढ़ना भी चाहेंगे, जो परिप्रेक्ष्य से लिखे गए किसी व्यक्ति से एनयूनीट/एमबीयूनीट पृष्ठभूमि से आ रहा है।

+1

धन्यवाद Laepdjek। हमें बिंदु मिल गया। हम अपने (टी) कन्स्ट्रक्टर में टी (IUseFixture ) प्रारंभ कर सकते हैं और इसे सभी परीक्षण विधियों में साझा किया जाएगा। –

+7

यह देखते हुए कि xUnit सामान्य रूप से अन्य परीक्षण ढांचे की तुलना में अधिक सहज ज्ञान युक्त है, मुझे आश्चर्य है कि समाधान इतना है ... बोझिल। – nathanchere

+0

एक स्थिर कन्स्ट्रक्टर का उपयोग कई उपयोग मामलों के लिए एक अच्छा कामकाज हो सकता है। –

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