में वर्चुअल सदस्यों का मज़ाक उड़ाते हुए यूनिट परीक्षण के लिए, मैं NUnit 2.6 और Moq 4.0 का उपयोग कर रहा हूं। आभासी सदस्यों से संबंधित एक विशेष मामला है जहां मोक की प्रॉक्सी ऑब्जेक्ट्स वास्तविक कार्यान्वयन (शायद डिज़ाइन द्वारा) विधि विधि को रिले नहीं करती हैं। उदाहरण के लिए, अगर मैं एक वर्ग ...Moq
public class MyClass {
protected virtual void A() {
/* ... */
}
protected virtual void B(...) {
/* ... */
}
}
था ... और मैं Moq का उपयोग अपने परीक्षण स्थिरता में GetSomethingElse
के A()
विधि ओवरराइड करने के लिए ...
var mock = new Mock<MyClass>();
mock.Protected().Setup("A").Callback(SomeSortOfCallback);
... का उपयोग कर नकली A
विधि शानदार काम करता है; हालांकि, अगर कहा गया विधि में कुछ भी मॉक-अप विधि B
पर कॉल नहीं करेगा, तो विधि कुछ भी नहीं करेगी और/या डिफ़ॉल्ट मान वापस कर देगी, भले ही वास्तविक कार्यान्वयन MyClass
में मौजूद हो।
क्या इस के आसपास काम करने का कोई तरीका है? क्या मैं मोक गलत इस्तेमाल कर रहा हूँ?
अग्रिम धन्यवाद,
मैनी
क्या होगा यदि आप अभी भी अन्य तरीकों का नकल करना चाहते हैं? –
@LouisRhys बहुत यकीन है कि इससे इसमें हस्तक्षेप नहीं होता है - अगर आप स्पष्ट रूप से कुछ कॉल करते हैं तो 'कॉलबेस' सेटिंग कभी भी खेल में नहीं आती है। –