आपको मॉक ऑब्जेक्ट बनाने के लिए Moq का उपयोग करना चाहिए और ऑब्जेक्ट व्यवहार का उपयोग करने के लिए कॉलबेस संपत्ति को सही पर सेट करना चाहिए।
Moq प्रलेखन से: कॉलबेस को "क्लास क्लास कार्यान्वयन को आमंत्रित करें" यदि कोई उम्मीद सदस्य को ओवरराइड नहीं करती है। इसे "आंशिक मॉक" कहा जाता है। यह सबकुछ नकल किए बिना कक्षा के कुछ हिस्से को नकल करने की अनुमति देता है।
नमूना कोड:
[Test]
public void FailintgTest()
{
var mock = new Moq.Mock<MyClass>();
mock.Setup(m => m.Number).Returns(4);
var testObject = mock.Object;
Assert.That(testObject.Number, Is.EqualTo(4));
Assert.That(testObject.Name, Is.EqualTo("MyClass"));
}
[Test]
public void OKTest()
{
var mock = new Moq.Mock<MyClass>();
mock.Setup(m => m.Number).Returns(4);
mock.CallBase = true;
var testObject = mock.Object;
Assert.That(testObject.Number, Is.EqualTo(4));
Assert.That(testObject.Name, Is.EqualTo("MyClass"));
}
public class MyClass
{
public virtual string Name { get { return "MyClass"; } }
public virtual int Number { get { return 2; } }
}
स्रोत
2010-03-17 13:46:44
जानना अच्छा है - वहां वहां मोल्स पर अधिक जानकारी थी - अभी तक इस पर कुछ भी नहीं सुना है, जहां तक लोग इसका उपयोग SO – dferraro
FWIW पर यहां करते हैं, यहां आधिकारिक साइट है: http: // research। microsoft.com/en-us/projects/moles/ –
वह मोक ऐसा नहीं कर सकता है यह अब और सत्य नहीं है। – MushinNoShin