Между прочим, если вы хотите использовать moq (в настоящее время), чтобы также смоделировать параметр out, вам также придется выполнить следующий прыжок в виде пялец. Допустим, вы хотели смоделировать параметр out, который возвратил другой смоделированный объект, например,
var mockServiceA = new Mock<IMyService>();
var mockServiceOutput = new Mock<IMyServiceOutput>();
// This will not work...
mockServiceA.Setup(svc => svc.DoSomething(out mockServiceOutput.Object));
// To have this work you have to do the following
IMyServiceOutput castOutput = mockServiceOutput.Object;
mockServiceA.Setup(svc => svc.DoSomething(out castOutput));