Ich bin ziemlich neu in Unit-Tests in C # und lerne, Moq zu verwenden. Unten ist die Klasse, die ich zu testen versuche.
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...
}
}
Unten ist meine Testklasse:
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>()));
}
}
Ich bekomme folgende Ausnahme:
Expected invocation on the mock at least once, but was never performed
No setups configured.
No invocations performed..
Ich möchte nur überprüfen, ob die Methode "MyMethod" aufgerufen wird oder nicht. Vermisse ich etwas
SomeClass
es keine Definition für gibtMyMethod(string)
, für die es anscheinend nicht so ist.