का उपयोग कर एक विधि कॉल सत्यापित करें मैं सी # में यूनिट परीक्षण के लिए बिल्कुल नया हूं और Moq का उपयोग करना सीख रहा हूं। नीचे वह वर्ग है जिसे मैं परीक्षण करने की कोशिश कर रहा हूं।Moq
class MyClassTest
{
[TestMethod()]
public void MyMethodTest()
{
string action="test";
Mock<SomeClass> mockSomeClass = new Mock<SomeClass>();
mockSomeClass.SetUp(a => a.DoSomething(action));
MyClass myClass = new MyClass(mockSomeClass.Object);
myClass.MyMethod(action);
mockSomeClass.Verify(v => v.DoSomething(It.IsAny<string>()));
}
}
मैं निम्नलिखित अपवाद:
Expected invocation on the mock at least once, but was never performed
No setups configured.
No invocations performed..
मैं सिर्फ अगर विधि "MyMethod" कहा जाता है की जा रही है या नहीं सत्यापित करना चाहते
class MyClass
{
SomeClass someClass;
public MyClass(SomeClass someClass)
{
this.someClass = someClass;
}
public void MyMethod(string method)
{
method = "test"
someClass.DoSomething(method);
}
}
class Someclass
{
public DoSomething(string method)
{
// do something...
}
}
नीचे मेरी TestClass है। क्या मैं कुछ भूल रहा हूँ?
अग्रिम धन्यवाद!
यह नहीं होगा कि 'SomeClass' में' MyMethod (string) 'की परिभाषा नहीं है, जो ऐसा लगता है कि ऐसा नहीं है। –
क्षमा करें..मैंने अपना प्रश्न संपादित किया .. – user591410
आप सही रास्ते पर हैं, लेकिन पोस्ट कोड में बग हैं। यह संकलित नहीं होगा - कुछ क्लास पर आवरण, DoSomething पर शून्य वापसी। उसके बाद आपको सार्वजनिक पहुंच की आवश्यकता है, फिर DoSomething वर्चुअल बनाएं। संक्षेप में आपके पास शायद आपके उत्पादन कोड में भी एक बग है। – TrueWill