मैं एक वर्गMoq का उपयोग कर पूरे वर्ग की बजाय कक्षा पर एक विधि नकली?
public interface IMyInterface
{
string MethodA();
void MethodB();
}
public class MyClass : IMyInterface
{
public string MethodA()
{
// Do something important
}
public void MethodB()
{
string value = MethodA();
// Do something important
}
}
मैं इकाई परीक्षण MethodB करना चाहते हैं, लेकिन मैं मुसीबत मैं MethodA
कैसे नकली कर सकते हैं, जबकि अभी भी MethodB
में बुला Moq का उपयोग कर के बारे में सोच रही है। Moq इंटरफ़ेस mocks, वर्ग नहीं, तो मैं सिर्फ mock.Object.MethodB()
पर कॉल नहीं कर सकता, है ना?
क्या यह संभव है? यदि हां, तो कैसे?
एक टिप्पणी: वास्तव में मोक का उपयोग करके आप कक्षा का मज़ाक उड़ा सकते हैं लेकिन कक्षाओं पर कुछ आवश्यकताएं हैं। कक्षा को सील नहीं किया जा सकता है। और मॉक किए जाने की विधि को वर्चुअल के रूप में चिह्नित किया जाना चाहिए। यह स्थिर विधि भी नहीं हो सकता है। – Artiom