Для модульного тестирования, как я издеваюсь над зависимостями класса, который использует заводы.Мокальные зависимости класса, использующего статический завод
Например, если у меня есть следующий класс:
public class SignalProcessor
{
ISignalFilter signalFilter;
public SignalProcessor()
{
this.signalFilter = SignalFilterFactory.GetInstance();
}
}
Сейчас в тестовом модуле для SignalProcessor, я хочу, чтобы дразнить из ISignalFilter, т.е. использовать тестовую версию ISignalFilter. Если бы я использовал Dependency Injection вместо Factory, то я мог бы пройти в TestSignalFilter для конструктора SignalProcessor. Но как я могу издеваться над ISignalFilter в заводском случае?
Вы должны рассмотреть возможность использования рамки DI, как замок или Unity (если вы еще не используется). Эти структуры предоставляют возможность экстернализировать фабрики либо XML, либо классу (который сам по себе может быть протестирован по модулю). Тогда у вас может быть только один конструктор «public SignalProcessor (фильтр ISignalFilter)». – aquaraga