2012-08-23 15 views
17

जब मैं यूनिट परीक्षण लिखता हूं तो मुझे राइनो मोक्स का उपयोग करना पसंद है।विंडोज स्टोर अनुप्रयोगों के लिए यूनिट टेस्ट लाइब्रेरी में पसंद का मॉकिंग फ्रेमवर्क क्या है?

तो जब मैं अपनी पहली Windows स्टोर आवेदन शुरू कर दिया मैं स्वाभाविक रूप से पहले मेरी इकाई परीक्षण के साथ शुरू कर दिया। जब मैं NuGet के माध्यम से RhinoMocks जोड़ने की कोशिश की मैं निम्न त्रुटि

प्राप्त पैकेज 'RhinoMocks 3.6.1' स्थापित नहीं हो सका। आप एक परियोजना है कि लक्षित करता '.NETCore, संस्करण = v4.5' में इस पैकेज स्थापित करने की कोशिश कर रहे हैं, लेकिन पैकेज किसी भी विधानसभा संदर्भ उस ढांचे के साथ संगत कर रहे हैं शामिल नहीं है। अधिक जानकारी के लिए, पैकेज लेखक से संपर्क करें।

मैं Moq के साथ एक ही मुद्दा था।

वहाँ .NETCor, संस्करण = v4.5 के लिए एक मजाक रूपरेखा है?

उत्तर

15

अधिकांश मजाक चौखटे Reflection.Emit पर आधारित हैं। दुर्भाग्य से Reflection.Emit WinRT में नहीं है। इसका मतलब है कि आप गतिशील प्रॉक्सी नहीं कर सकते हैं। (आईई रन-टाइम मॉकिंग)। यह पूर्व-पीढ़ी के मोजे छोड़ देता है जो संकलन-समय पर संदर्भित होते हैं। मुझे पता है कि एकमात्र ढांचा Moq की एक प्रयोगात्मक शाखा है: https://github.com/mbrit/moqrt

1

यहां मेरे सुझाव हैं, मुझे पता है कि मैंने अभी तक इनमें से किसी का परीक्षण नहीं किया है। Here पहले दो विकल्पों पर चर्चा करने वाले लेख का एक लिंक है।

  1. TypeMock अलगाने - महंगा है, लेकिन जैसे कि यह काम
  2. माइक्रोसॉफ्ट नकली (MSR पर एक परियोजना से विकसित मोल्स कहा जाता है)
  3. मजाक (या निर्भरता इंजेक्शन कर) की
  4. इसके बजाय करना होगा लग रहा है, आप इस्तेमाल कर सकते हैं एक अलग तकनीक। आप पैरामीटरयुक्त इंजेक्शन का उपयोग कर सकते हैं और केवल उस सूचना में पास हो सकते हैं जिसकी आपको जांच करने की आवश्यकता है। यह एक मॉकिंग ढांचे की आवश्यकता से राहत, प्रतिनिधियों और primitives के लिए बड़ी वस्तुओं को कम कर देता है। Here इस बारे में अधिक है, जिसमें कार्रवाई में तकनीक के example शामिल हैं।
+2

माइक्रोसॉफ्ट नकली WinRT –

+1

अलगाने से उपलब्ध नहीं है WinRT क्षुधा के लिए –

0

वास्तव में, Philipp Dolder, FakeItEasy योगदानकर्ताओं में से एक पर पोर्टेबल कक्षा पुस्तकालय आधारित एक रोचक और काम कर रहे दृष्टिकोण के साथ आ गया है।

  1. एक पीसीएल वर्ग पुस्तकालय है जहां आप चुन जो भी लक्ष्य चौखटे आप
  2. समर्थन करने के लिए की तरह में अपने सभी उत्पादक कोड कि TDD एड हो जाएगा रखो: http://www.planetgeek.ch/2013/02/01/fakeiteasy-and-windows-store-apps-are-becoming-friends/

    संक्षेप में, वह निम्नलिखित समाधान का प्रस्ताव एक नियमित रूप से वर्ग पुस्तकालय

  3. के रूप में अपने परीक्षण विधानसभा बनाएं FakeItEasy का सन्दर्भ और अपनी पसंद के परीक्षण ढांचे (रों) (जैसे NUnit + FluentAssertions) अपने * में जोड़े।टेस्ट विधानसभा
  4. केवल यूआई सामान है कि आप एक Windows स्टोर अनुप्रयोग परियोजना
+0

हालांकि यह सैद्धांतिक रूप से इस सवाल का जवाब कर सकते हैं, [यह बेहतर होगा] उपलब्ध नहीं है (http://meta.stackexchange.com/q/8259) शामिल करने के लिए यहां उत्तर के आवश्यक भाग, और संदर्भ के लिए लिंक प्रदान करते हैं। –

2

मैं विंडोज फोन 7 के साथ प्रयोग के लिए बनाया में परीक्षण नहीं कर सकते शब्दों में कहें, विन 8 के साथ काम करना चाहिए के रूप में यह सिर्फ एक पोस्ट का निर्माण कदम है :

http://dontcodetired.com/blog/post/Introducing-%28probably%29-The-Worlds-Only-Mocking-Framework-for-Windows-Phone-7-%28WP7%29.aspx

-1

मैं जानता हूँ कि मूल प्रश्न पुराना है लेकिन हम में से कई अभी भी वहाँ Windows स्टोर Apps में मजाक पूरा करने के लिए कोशिश कर रहे हैं।

मैंने हाल ही में MoqaLate का उपयोग शुरू किया है जो कहता है: विंडोज फोन & विंडोज स्टोर ऐप्स के लिए मॉकिंग। यह आपके समाधान को बनाने के बाद वास्तव में भौतिक रूप से मॉकिंग क्लासेस बनाता है। तो, निर्माण के बाद आपके पास अपने वर्गों के कुछ नकली कार्यान्वयन के साथ एक फ़ोल्डर होगा।

मुझे लगता है कि सबसे अच्छा विकल्प नहीं है। रन-टाइम मॉकिंग आदर्श होगा लेकिन इस बीच यह मेरे लिए मोक्स बनाता है।