c# - Set method does not set the properties of an abstract object through Moq -
मेरे पास SetRange
विधि है, जो StartDate
और समाप्ति दिनांक
गुण:
सार्वजनिक वर्चुअल शून्य सेटरेंज (डेटटाइम? स्टार्टडेट, डेटटाइम? एंडडेट) {this.startdown = startDate; This.EndDate = endDate; }
मेरे स्टब ऑब्जेक्ट पर टेस्ट में, नीचे StartDate
और EndDate
गुण सेट करेगा:
< कोड> var dateRangeEntityStub = नया नकली & lt; दिनांकरेंज एंटीटीबेस & gt; (); dateRangeEntityStub.SetupAllProperties (); // कम से कम 1 तारीख सीमा एंटीटीस्ट। ऑब्जेक्ट .सेटरेन्ज (डेटटाइम.अब। जोड़े गए साल (-1), डेटटाइम.Now); // अपमान 2 तारीखकौजइन्तिटीस्टब .सेटअप (x = & gt; x.SetRange (दिनांकटाइम.अब। जोड़ा गया युग (-1), दिनांकटाइम.अब));
लेकिन सामान्य सेटर काम करेगा:
dateRangeEntityStub.Object.EndDate = DateTime.Now;
क्यों SetRange
विधि स्टब पर गुण सेट नहीं करती?
Moq प्रत्येक आभासी विधि / संपत्ति को ओवरराइड करता है और उसके लिए इसके स्वयं के क्रियान्वयन का उपयोग करेगा
इसलिए यदि आप अपने SetRange
विधि का मूल व्यवहार रखना चाहते हैं, तो आपको CallBase
से true
को सेट करें मॉक जो आपके मूल कोड को भी लागू करने के लिए मूक को कहता है:
var dateRangeEntityStub = नया नकली & lt; DateRangeEntityBase & gt; () {CallBase = true};
त्वरित स्टार्ट के अनुभाग में भी देखें: अनुभाग
Comments
Post a Comment