Из-за этого для списка местоположений SelectList должен быть установлен по умолчанию значение Location5, когда отображается экран ввода для нового сотрудника. Должен ли я использовать местоположение по умолчанию в модели или в модели представления?
Это бизнес-логика в вашем примере, но это не помешает вам съесть свой торт и съесть его тоже в этом случае. Модель может указывать значение по умолчанию; представление затем инициализирует себя этим значением по умолчанию.
В целом, является ли что-то «бизнес-логикой» или «логикой представления», зависит от того, относится ли это к области или нет. Например, установка самого раннего года в раскрывающемся списке дат, скажем, до 1900 года, вероятно, является проблемой презентации. Но это также может быть проблемой для бизнеса, если система не предназначена для приема дат ранее 1900 года.
Одна вещь, которую я понял, заключается в том, что модульные тесты становятся неуклюжими, потому что в обоих случаях я буду вынужден проводить тестирование на месте, которое всегда будет присутствовать в производстве, но я не могу создать модульный тест с моими собственными тестовыми данными, если только " Атланта "была в наборе мест, используемых в тесте. Буду признателен, если у вас есть какие-либо мысли по этому поводу.
С помощью стратегии, о которой я упоминал выше, юнит-тестирование очень просто. Просто убедитесь, что:
- модель предоставляет значение по умолчанию
- представление принимает это значение по умолчанию
- представление инициализируется этим значением по умолчанию
- представление имеет соответствующее поведение независимо от того, предоставляет ли модель это значение