Witam! Ostatnio na stacku widziałem taki kod:
class MyClassTest
{
[TestMethod]
public void MyMethodTest()
{
string action = "test";
Mock<SomeClass> mockSomeClass = new Mock<SomeClass>();
mockSomeClass.Setup(mock => mock.DoSomething());
MyClass myClass = new MyClass(mockSomeClass.Object);
myClass.MyMethod(action);
// Explicitly verify each expectation...
mockSomeClass.Verify(mock => mock.DoSomething(), Times.Once());
// ...or verify everything.
// mockSomeClass.VerifyAll();
}
}
Z tego co mi wiadomo Verify służy do sprawdzania ile razy wywołano daną metodę. Patrząc na powyższy kod zastanawiam się po co testować czy wywołano raz wyrażenie "mock => mock.DoSomething()" skoro wyżej jest ona wywoływana (w Setup). Albo po co w ogóle testować czy coś się wywołało? Nie lepiej sprawdzić wynik działania metody/wyrażenia???