Jestem całkiem nowy w testowaniu jednostkowym w C # i uczę się używać Moq. Poniżej znajduje się klasa, którą próbuję przetestować.
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...
}
}
Poniżej znajduje się moja klasa TestClass:
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>()));
}
}
Otrzymuję następujący wyjątek:
Expected invocation on the mock at least once, but was never performed
No setups configured.
No invocations performed..
Chcę tylko sprawdzić, czy metoda „MyMethod” jest wywoływana, czy nie. Czy coś mi brakuje?
SomeClass
nie ma definicji, dlaMyMethod(string)
której wygląda na to, że jej nie ma.