Moq का उपयोग करने से आ रहा है, मैं सेटअप मैक्स को सत्यापित करने में सक्षम होने के लिए उपयोग किया जाता है। जैसा कि आप जानते हैं, यह आसान है जब आप परीक्षण के तहत अपना कोड सुनिश्चित करना चाहते हैं वास्तव में निर्भरता पर एक विधि कहा जाता है।विजुअल स्टूडियो 2012 नकली - मैं एक विधि को कैसे सत्यापित करूं?
उदा। MOQ:
// Set up the Moq mock to be verified
mockDependency.Setup(x => x.SomethingImportantToKnow()).Verifiable("Darn, this did not get called.");
target = new ClassUnderTest(mockDependency);
// Act on the object under test, using the mock dependency
target.DoThingsThatShouldUseTheDependency();
// Verify the mock was called.
mockDependency.Verify();
मैं, जो काफी चालाक है और मैं Moq करने के लिए इसे प्राथमिकता देते शुरू कर है (इसके लिए एक बेहतर नाम जानने की कमी के लिए) VS2012 के "नकली फ्रेमवर्क" का उपयोग कर के रूप में ऐसा लगता है थोड़ा और अभिव्यक्तिपूर्ण और शिम्स को आसान बनाता है। हालांकि, मैं यह नहीं समझ सकता कि मोक के सत्यापन योग्य/सत्यापन कार्यान्वयन के समान व्यवहार कैसे पुन: पेश किया जाए। मुझे स्टब्स पर इंस्टेंस ऑब्सर्वर प्रॉपर्टी मिली, जो ऐसा लगता है कि यह मेरी इच्छा हो सकती है, लेकिन 9/4/12 के रूप में कोई दस्तावेज़ीकरण नहीं है, और मुझे यह स्पष्ट नहीं है कि इसका उपयोग कैसे किया जाए, अगर यह सही बात भी है।
क्या कोई मुझे Moq Verifiable/VS2012 के Fakes के साथ सत्यापित करने पर सही दिशा में इंगित कर सकता है?
- 9/5/12 संपादित करें - मुझे समस्या का हल हुआ, लेकिन मैं अभी भी जानना चाहता हूं कि वीएस2012 नकली के साथ ऐसा करने का एक अंतर्निहित तरीका है या नहीं। अगर कोई ऐसा कर सकता है तो मैं इसे थोड़ा सा खोल दूंगा। मेरे पास मूलभूत विचार है (क्षमा करें अगर यह संकलित नहीं होता है)।
[TestClass]
public class ClassUnderTestTests
{
private class Arrangements
{
public ClassUnderTest Target;
public bool SomethingImportantToKnowWasCalled = false; // Create a flag!
public Arrangements()
{
var mockDependency = new Fakes.StubIDependency // Fakes sweetness.
{
SomethingImportantToKnow =() => { SomethingImportantToKnowWasCalled = true; } // Set the flag!
}
Target = new ClassUnderTest(mockDependency);
}
}
[TestMethod]
public void DoThingThatShouldUseTheDependency_Condition_Result()
{
// arrange
var arrangements = new Arrangements();
// act
arrangements.Target.DoThingThatShouldUseTheDependency();
// assert
Assert.IsTrue(arrangements.SomethingImportantToKnowWasCalled); // Voila!
}
}
- 9/5/12 समाप्ति संपादित करें -
धन्यवाद!
मैंने यहां एक समान प्रश्न का उत्तर दिया http://stackoverflow.com/a/13794884/333082 – cecilphillip