2009-03-24 13 views
13

मैं इसे डॉटनेटकिक्स इत्यादि पर संदर्भित करता रहता हूं ... फिर भी यह पता नहीं लगा सकता कि यह वास्तव में क्या है (अंग्रेजी में) या यह क्या करता है? मैं बेवकूफ हूँ, इसलिए यदि आप इसे समझा सकते हैं तो यह बहुत अच्छा होगा और मैं इसका उपयोग क्यों करूंगा (यदि यह कुछ है जो मैं उपयोग करता हूं) ???मोक क्या है?

धन्यवाद

उत्तर

20

Moq सी # /। नेट के लिए एक मजाक रूपरेखा है। इसका उपयोग यूनिट परीक्षण में आपकी कक्षाओं को अपनी निर्भरताओं से परीक्षण के तहत अलग करने के लिए किया जाता है और यह सुनिश्चित करता है कि निर्भर वस्तुओं पर उचित तरीकों को बुलाया जा रहा है। मॉकिंग के बारे में अधिक जानकारी के लिए आप विकिपीडिया आलेख को Mock Objects पर देखना चाह सकते हैं।

अन्य मॉकिंग फ्रेमवर्क (.NET के लिए) में TypeMock, RhinoMocks, nMock, .etc शामिल हैं।

+0

उत्कृष्ट धन्यवाद ... मुझे लगता है कि मुझे यूनिट परीक्षण के बारे में और भी पढ़ना होगा - प्रशंसा धन्यवाद – leen3o

+4

MOQ व्यापारिक व्यापार में भी एक शब्द है "न्यूनतम आदेश मात्रा": एक उत्पाद जो ऑर्डर पर $ 100 खर्च करता है यदि आप दस लाख यूनिट खरीदते हैं तो 5000 पीसी की मात्रा $ 20 जितनी कम हो सकती है। मुझे कंप्यूटर विज्ञान के साथ कुछ लेना देना नहीं है! :) –

+0

अधिक सही ढंग से, यह एक अलगाव ढांचा है, क्योंकि सभी नकली झटके नहीं हैं। – StuperUser

3

मोक नेट टीडीडी करने के लिए एक मॉकिंग इंजन है।

7

मैं अपने आवेदन में Moq उपयोग करने के लिए एक वीडियो परिचय बना दिया है:

Getting Started With Unit Testing (Dependency Injection, IoC Containers, Unity, Moq)

+0

वीडियो के लिए धन्यवाद। यह इंजेक्शन और मजाक समझने में मेरे लिए काफी मदद की! –

4

सरल अंग्रेजी में, Moq एक पुस्तकालय जो जब आप अपने प्रोजेक्ट में शामिल आप आसान में यूनिट परीक्षण करने के लिए शक्ति देने है तौर तरीका। क्यों? क्योंकि एक समारोह दूसरे को कॉल कर सकता है, फिर दूसरा और इसी तरह। लेकिन वास्तव में क्या जरूरत है, केवल पहली कॉल से वापसी मूल्य अगले पंक्ति पर आगे बढ़ने के लिए। Moq उस विधि की वास्तविक कॉल को अनदेखा करने में मदद करता है और इसके बदले आप उस कार्य को वापस कर रहे हैं जो वापस लौटा रहा था। और कोड की सभी पंक्तियों को निष्पादित करने के बाद सत्यापित करें, जो आप चाहते हैं वह वह है जो आपको मिलता है या नहीं। बहुत बहुत अंग्रेजी, इसलिए यहाँ एक उदाहरण है:

String Somethod() 
{ 
    IHelper help = new IHelper(); 
    String first = help.firstcall(); 
    String second= secondcall(first); 
    return second; 
} 

अब, यहाँ firstsecondcall() के लिए की जरूरत है, लेकिन आप वास्तव में कुछ अन्य परत में help.firstcall() यह के रूप में फोन नहीं कर सकते हैं। तो मजाक किया जाता है, faking है कि विधि बुलाया गया था:

[TestMethod] 
public void SomeMethod_TestSecond 
{ 
    mockedIHelper.Setup(x=>x.firstcall()).Returns("Whatever i want"); 
} 

यहाँ, विधि कॉल faking के रूप में लगता है, SetUP, हम बस Returns में रुचि रखते हैं।

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