В этом вопросе я нашел этот ответ, который, кажется, лучший способ решить проблема для меня.
Предоставляемый код предполагает, что функция, которая издевается, возвращает значение:
bool SomeFunc(out ISomeObject o);
Однако объект, который я хочу высмеять, имеет функцию вывода следующим образом:
void SomeFunc(out ISomeObject o);
Соответствующий фрагмент кода из упомянутого ответа:
public delegate void OutAction<TOut>(out TOut outVal);
public static IReturnsThrows<TMock, TReturn> OutCallback<TMock, TReturn, TOut>(
this ICallback<TMock, TReturn> mock, OutAction<TOut> action)
where TMock : class
{
// ...
}
Void не является допустимым типом для TReturn. Поэтому я считаю, что мне придется каким-то образом адаптировать этот код, чтобы заставить его работать с методами, возвращающими void. Но как?