I mock some objects using Moq, and some of them may have fairly long parameter set request objects, passed as arguments.
For ease of reuse and style, I would like to be able to store these requests with specific arguments for use in a mocking setting. For example:
mockedObject .Setup(mo => mo.GetBobbins(It.Is<GetBobbinsRequest> (r.Parameter1 == value1 && [...] & r.ParameterN == valueN)) .Returns(someBobbins);
becomes:
var request = It.Is<GetBobbinsRequest> (r.Parameter1 == value1 && [...] & r.ParameterN == valueN); mockedObject .Setup(mo => mo.GetBobbins(request)) .Returns(someBobbins);
But that does not work. I also tried:
Func<GetBobbinsRequest> request = () => It.Is<GetBobbinsRequest> (r.Parameter1 == value1 && [...] & r.ParameterN == valueN); mockedObject .Setup(mo => mo.GetBobbins(request())) .Returns(someBobbins);
But there is no joy. Is there a way to save an It style object as a variable? Or am I missing another obvious way to handle this?
Michael rosefield
source share