i got a class that gets by argument a delegate. This class invokes that delegate, and i want to unit test it with Moq. how do i verify that this method was called ?
example class :
public delegate void Foo(int number);
public class A
{
int a = 5;
public A(Foo myFoo)
{
myFoo(a);
}
}
and I want to check that Foo was called. Thank you.
As of this commit Moq now supports the mocking of delegates, for your situation you would do it like so:
var fooMock = new Mock<Foo>();
var a = new A(fooMock.Object);
Then you can verify the delegate was invoked:
fooMock.Verify(f => f(5), Times.Once);
Or:
fooMock.Verify(f => f(It.IsAny<int>()), Times.Once);