Мой универсальный класс принимает в конструкторе параметр Func , и я хочу протестировать один из его методов, который в основном вызывает параметр конструктора.
Я использую Moq и в моем тестовом коде что-то вроде этого:
[Fact]
public void Construct_EnsureInvokeFunction()
{
_objectToTest=new TypeToTest<T>(It.IsAny<Func<T>>());
_objectToTest.Construct();
//here I want to ensure that the passed parameter is invoked
//however since I can't mock Func<T>, I dont know how to verify
//whether Invoke method of Func<T> is triggered
}
Один из обходных путей, который я могу придумать, - это обернуть мой Func в новый интерфейс и создать метод для обертывания его метода Invoke, а затем использовать Moq для макета интерфейса. Однако это не кажется эффективным.
Я что-то упустил? Любая идея будет оценена.
Спасибо
Anton