खोज…
वाक्य - विन्यास
- mock.Setup (अभिव्यक्ति) .Returns (मान) // जब भी अभिव्यक्ति में विधि कहा जाता है मूल्य वापस आ जाएगी
पैरामीटर
पैरामीटर | विवरण |
---|---|
अभिव्यक्ति | लैम्ब्डा अभिव्यक्ति जो विधि आह्वान को निर्दिष्ट करती है। |
नो-आर्ग्यूमेंट मेथड मॉकिंग
interface Mockable {
bool DoSomething();
}
var mock = new Mock<Mockable>();
mock.Setup(x => x.DoSomething()).Returns(true);
var result = mock.Object.DoSomething(); //true
वे क्या वापसी की पुष्टि करने के लिए शून्य तरीकों का मजाक उड़ाते हैं
var logRepository = new Mock<ILogRepository>();
logRepository.Setup(x => x.Write(It.IsAny<Exception>(), It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>()))
.Verifiable();
इस मामले में, हम यह सुनिश्चित करने के लिए सत्यापन योग्य का उपयोग कर रहे हैं कि यह चलता है।
हम यहां कॉलबैक का उपयोग भी कर सकते हैं:
logRepository.Setup(x => x.Write(It.IsAny<Exception>(), It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>()))
.Callback<Exception, string, string, string, string, string>((ex, caller, user, machine, source, message) => { Console.WriteLine(message); });
यह कंसोल पर मानक आउटपुट से विधि तक आउटपुट को लॉग करेगा (कई परीक्षण रूपरेखाएं आपको उस आउटपुट को उनके रनर में कैप्चर करने देती हैं)
मॉकिंग संरक्षित सदस्य
किसी संरक्षित सदस्य का मज़ाक उड़ाने के लिए आपको सबसे पहले अपने टेस्ट फिक्सचर के शीर्ष पर निम्नलिखित को शामिल करना होगा:
using Moq.Protected;
फिर आप अपने मॉक पर Protected()
कॉल करते हैं, जिसके बाद आप जेनेरिक Setup<>
उपयोग कर सकते हैं Setup<>
अपने तरीके के रिटर्न प्रकार के साथ।
var mock = new Mock<MyClass>();
mock.Protected()
.Setup<int>("MyProtectedGetIntMethod")
.Returns(1);
यदि विधि शून्य हो जाती है तो गैर-जेनेरिक Setup()
।
Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow