2008-11-16 15 views
36

मैं अपनी डेल्फी परियोजनाओं पर नकली वस्तुओं का उपयोग शुरू करना चाहता हूं।आपकी पसंदीदा डेल्फी मॉकिंग लाइब्रेरी क्या है?

तो मेरे सवाल का एक अपने पसंदीदा और क्यों है क्या है:

एक त्वरित गूगल के बाद मैं उन मिल गया है?

उत्तर

20

वाह, मैं पास्कलॉक प्रोजेक्ट लीडर हूं और पहली बार मैंने डेल्फी मॉक विज़ार्ड के बारे में सुना है! पास्कलॉक के लिए बहुत अच्छा जोड़ा।

हो सकता है कि कुछ अन्य लोगों के आसपास रहे हैं:

BTW आप भी कुछ छोटे नकली चौखटे है?

इसके अलावा पास्कलॉक खुला स्रोत है और योगदान या सुधार के विचारों का स्वागत है।

पुनश्च: CVS से नवीनतम PascalMock संस्करण 1.1 संस्करण में अतिरिक्त सुविधाएं जोड़ना, जैसे: RTTI

  • का उपयोग कर इंटरफेस के लिए रन टाइम पर

    • स्वत: नकली निर्माण के तरीकों की उम्मीद करने की अनुमति किसी भी क्रम
    • में कॉल
    • एक विधि
  • 11

    हालांकि यह स्थिर है की कम से कम x कॉल, PascalMock वर्षों में पर काम किया नहीं किया गया है उम्मीद है।

    Delphi Mocks नामक एक नई नकली लाइब्रेरी है। यह केवल डेल्फी XE2 या नए के साथ काम करता है।

    2

    डेल्फी मॉक विज़ार्ड बस पास्कल मॉक के लिए जादूगर उत्पन्न करता है। वे प्रतिस्पर्धी कार्यान्वयन नहीं कर रहे हैं।

    7

    Dsharp आज़माएं। यह डेल्फी मोक्स की तरह है, लेकिन मेमोरी लीक के बिना।

    आईएमएचओ डीएसएचएआरपी बेहतर है, हालांकि मैं पहले डेल्फी मोक्स से उत्साहित था।

    5

    हमारे मुक्त स्रोत mORMot framework अब ठूंठ या नकली किसी भी डेल्फी इंटरफ़ेस करने के लिए, अपने अस्थिर संस्करण में सक्षम है,।

    सामान्य रूप से, यह समझाने का सबसे अच्छा तरीका है कि लाइब्रेरी क्या करती है इसका उपयोग करके कोड को देखना है। यहाँ एक उदाहरण की पुष्टि करने कि जब हम पर अमल परिदृश्य "अपना पासवर्ड भूल" के (RhinoMocks के साथ भेज दिया एक के समान) है, तो हम ठीक से Save() विधि कॉल करने के याद किया:

    procedure TMyTest.ForgotMyPassword; 
    var SmsSender: ISmsSender; 
        UserRepository: IUserRepository; 
    begin 
        TInterfaceStub.Create(TypeInfo(ISmsSender),SmsSender). 
        Returns('Send',[true]); 
        TInterfaceMock.Create(TypeInfo(IUserRepository),UserRepository,self). 
        ExpectsCount('Save',qoEqualTo,1); 
        with TLoginController.Create(UserRepository,SmsSender) do 
        try 
        ForgotMyPassword('toto'); 
        finally 
        Free; 
        end; 
    end; 
    

    और ...यह सब कुछ है, क्योंकि सत्यापन तब होगा जब IUserRepository उदाहरण जारी किया जाएगा।

    उपलब्ध सुविधाएं (कुछ अन्य डेल्फी मजाक चौखटे की तुलना में अद्वितीय हैं):

    • साफ़ distinction between stubs and mocks, our Unit Testing classes साथ एकीकरण के साथ;
    • फ़ंक्शन परिणाम के अतिरिक्त, var और out मानकों को वापस लौटाए गए मान के रूप में;
    • एक धाराप्रवाह इंटरफेस के माध्यम से परिभाषा को दबाकर, या एक प्रतिनिधि/कॉलबैक;
    • आपकी परीक्षण अपेक्षाओं के आधार पर, "उम्मीद-रन-सत्यापन" और/या "रन-सत्यापित" (उर्फ "परीक्षण जासूस") पैटर्न के माध्यम से मॉकिंग;
    • एकीकृत विधि कॉल ट्रेसिंग;
    • ओपन सोर्स, डेल्फी 6 से XE3 तक काम करना;
    • लाइटवेट और तेज़ (धीमी टीवीर्टुअल इंटरफेस पर भरोसा न करें)।

    संबंधित ब्लॉग लेख देखें:

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