Steve Dunn Steve Dunn - 4 months ago 11
C# Question

MOQ: Returning value that was passed into a method

I have a method on an interface:

string DoSomething(string whatever);


I want to mock this with MOQ, so that it returns whatever was passed in - something like:

_mock.Setup( theObject => theObject.DoSomething( It.IsAny<string>( ) ) )
.Returns( [the parameter that was passed] ) ;


Any ideas?

Answer

You can use a lambda with an input parameter, like so:

.Returns((string myval) => { return myval; });

Or slightly more readable:

.Returns<string>(x => x);