При обращении к другим классам мы используем делегаты.Во время модульного тестирования мы переопределяем эти значения.
У меня есть класс, который ссылается на более чем 20 других классов, поэтому я подумал, что создам массив делегатов.Если я создаю статический массив этих делегатов (см. Код ниже), он хранит значения делегатов, а не ссылку на делегата.
В результате модульные тесты не могут обновить значения.Чтобы обойти это, я создал массив делегатов, когда я хочу их использовать, но я бы хотел, чтобы приведенный ниже код работал.
private static Func<int, bool> firstMethod = ExternalClass1.Method;
private static Func<int, bool> secondMethod = ExternalClass2.Method;
private static Func<int, bool> thirdMethod = ExternalClass3.Method;
private static Func<int, bool>[] handlers = { first, second, third };
public bool Test(int value)
{
foreach (var handler in handlers)
{
if (handler.Invoke(value) == true)
{
return true;
}
}
return false;
}