У меня есть инструкция switch на фабрике, которая возвращает команду, основанную на переданном значении перечисления. Что-то вроде:
public ICommand Create(EnumType enumType)
{
switch (enumType)
{
case(enumType.Val1):
return new SomeCommand();
case(enumType.Val2):
return new SomeCommand();
case(enumType.Val3):
return new SomeCommand();
default:
throw new ArgumentOutOfRangeException("Unknown enumType" + enumType);
}
}
В настоящее время у меня есть регистр переключения для каждого значения в перечислении. У меня есть модульные тесты для каждого из этих случаев. Как мне выполнить модульное тестирование, если в случае по умолчанию выдается ошибка? Очевидно, что в настоящий момент я не могу передать неизвестный тип EnumType, но кто скажет, что это не изменится в будущем. Могу ли я в любом случае расширить EnumType или использовать его только для модульного тестирования?