До сих пор я был в состоянии смоделировать статические методы, изменив его сигнатуру на что-то вроде (псевдо)
public static Func<TResult> Foo = () => { return TResult; };
Тогда в тесте я смог издеваться над
MyClass.Foo = () => new TResult();
Я столкнулся с новой проблемой.
Есть метод с сигнатурой что-то вроде:
public static async Task<TResult> FooBar(string obj1, string obj2)
Я изменил его на
public static Func<string, string, Task<TResult>> FooBar = async (obj1, obj2)
и это прекрасно компилируется, но я не получаю его для компиляции для теста.
MyClass.FooBar(It.IsAny<string>(), It.IsAny<string>()) => Task.FromResult(new TResult());
Я знаю, что я должен был подождать где-то в течение всего разговора, но он просто не сдвинулся с места.
Каким должен быть правильный способ издеваться над этим делегатом сейчас?