मैं Moq का उपयोग कर किया गया है और यह प्यार है, लेकिन मैं कुछ विरासत कोड मजाक एक समस्या का सामना करना पड़ा (इससे पहले कि मैं इसे दूर refactor करने की कोशिश) के साथ,क्या मैं एक मोक मॉक कार्यान्वयन की प्रतिलिपि बना सकता हूं?
क्या मैं सच में करना चाहते हैं दो अलग-अलग mocks है केवल थोड़ा अलग कार्यान्वयन, जैसे नीचे नमूना।
Mock<IFoo> fooMock = new Mock<IFoo>();
fooMock.SetupGet(f => f.bar).Returns(7);
fooMock.SetupGet(f => f.bar2).Returns(3);
Mock<IFoo> fooMockClone = new Mock<IFoo>(fooMock.Behavior);
fooMockClone.SetupGet(f => f.bar).Returns(9);
Debug.Assert(7 == fooMock.Object.bar);
Debug.Assert(9 == fooMockClone.Object.bar);
Debug.Assert(3 == fooMockClone.Object.bar2);
Debug.Assert(3 == fooMock.Object.bar2);
यह एक साधारण उदाहरण है लेकिन वास्तविक कोड दर्जनों तरीकों के साथ एक वस्तु है और मैं दो संस्करणों के लिए थोड़ा अलग कार्यान्वयन चाहता हूं।
धन्यवाद
आपका प्रश्न भ्रामक लगता है - आप दूसरी fooMock सेटअप और दूसरे दावे से एक कॉपी-पेस्ट "whoopsie" क्या ज़रूरत थी? –
आप बिल्कुल सही हैं। मैंने किया। फिक्स्ड। धन्यवाद :) –
रुको, क्या आप सिर्फ एक मॉक ऑब्जेक्ट चाहते हैं जिसका मूल्य हर बार जब आप इसे एक्सेस करते हैं या कुछ बदलते हैं? –