Moq – Verifying parameter values on a mocked method call.

Was going down a rabbit hole trying to figure out how to check param value on a mocked method (pretty simple if truth be told).

I need to ensure that when an exception was raised my logger would be called Times.Once and would log the correct level of detail in the message.  I did the following:

  • Unit test to mock method under test to raise an exception;
  • Mocked setup on my logger;
  • Assert with Verify on my mocked logger



_mockLogger.Verify(m => m.LogException(It.IsAny<Exception>(), It.Is<String>(l => l == “Message containing detail that I care about to be logged”));


Work related code has been obfuscated for the purposes of this blog.



Kudus to the following on StackOverflow which reminded me of “It.Is”;

 http://stackoverflow.com/questions/8883685/using-verify-to-confirm-expected-parameter-values-in-moq-mock-class

Add a Comment

Your email address will not be published. Required fields are marked *