سؤال

وأنا مستخدم حريصة RhinoMocks تطوير من TDD وجهة نظر AAA مع NUnit وReSharper. أنا تغيير وظائف وفريق سأنتقل إلى يستخدم TypeMock لذلك أريد أن اقتدار ... ولقد واجهت مشكلة. كيف يمكنني الحصول على الحجج لاستدعاء أسلوب على كائن وهمي. عند استخدام RhinoMocks يمكنني استخدام:

mockObject.GetArgumentsForCallsMadeOn(x => x.MethodIWantToGetParametersFrom(null))

والتي ترجع IList من مجموعة نوع الكائن. عظيم! أذهب والحصول على ما أريد، ومعالجة ذلك كم أتمنى. الآن باستخدام بناء الجملة AAA من TypeMock أنا لا يمكن أن يبدو للتوصل إلى طريقة للقيام بذلك ... يمكن لأحد أن يلقي بعض الضوء على هذا الرجاء؟ يجب أن تقوم به بشكل مختلف؟

وشكرا للقراءة، وأنا أتطلع إلى ردودكم!

وآدم

هل كانت مفيدة؟

المحلول

ويمكنك استخدام DoInstead ():

Isolate.WhenCalled(()=>x.MethodIWantToGetParametersFrom).DoInstead(context => Console.WriteLine(context.Parameters[0].ToString())

ويمكنك الحصول على جسم السياق الذي يحتوي على القيم المعلمة.

ويمكنك أيضا تنفيذ أسلوب بنفس الاسم على الفئة الخاصة بك، ويدعو مبادلة من وجوه مزيفة لهذه الطريقة:

 class MyOwnClass
    {
    void MethodIWantTOGetParametersFrom(string s){
Console.WriteLine(s);
} //this is NOT the real method
    }

    //in test:
    MyOwnClass own = new MyOwnClass();
    Isolate.Swap.CallsOn(realClassInstance).WithCallsTo(own); //only methods that are implemented in the OwnCalss will be redirected. others will be called on the original instance.
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top