سؤال

لدي سيناريو مثل هذا:

 form = MockRepository.GenerateMock<IAddAddressForm>();
 mediator = new AddAddressMediator(form);

الوسيط هو الكائن الحقيقي قيد الاختبار ويحتاج إلى أن تكون قادرا على تعيين قيم كائن "النموذج".

ولكن الطريقة الوحيدة التي يمكنني رؤيتها لتعيين قيم كائن النموذج هي مثل هذا:

  form.Stub(x=>x.FirstName).Return(item.FirstName)

لا أريد أن أفعل ذلك في الرمز الحقيقي.

هل أفتقد نقطة السخرط؟

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

المحلول

بذرة وقد بنيت في دعم لسلوك الممتلكات. في الحالات التي لا تستخدم فيها كعبات، يمكنك استخدام PropertyBehaviour () طريقة لتأثير مماثل.

داخل الوسيط، يجب أن تستخدم form كائن عادة - يجب أن لا يعرف أنه تم تسليم كائن مزيف.

هذا الرمز:

form.Stub(x=>x.FirstName).Return(item.FirstName)

لا ينبغي أن يكون في كائنك الحقيقي، ولكن قد يكون جزءا من اختبار لإعداد توقعات كيفية استخدام كائن Mock الخاص بك.

يحرر:

من ما قدمته، لا أستطيع الحكم على ما إذا كنت "تفتقد نقطة السخرية". الغرض الأساسي هو تقديم طريقة لاختبار التعليمات البرمجية التي لها تبعيات في عزلة من تلك التبعيات. ألق نظرة على مقال مارتن فاولر "السخرط لا كوذس"، قسم إرشادات الاستخدام من وثائق أكرينو الأسماك.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top