Как мне сохранить принципы MVC и сделать мой сайт более удобным для юнит-тестирования? - PullRequest
1 голос
/ 09 ноября 2010

Я создал простой сайт в ASP.NET MVC Framework с пользователями, статьями и т. Д., А также с изображениями для профилей пользователей.Существует простой статический класс для манипулирования изображениями (изменение размера, обрезка и сохранение изображений на жестком диске), размещенный в каталоге «Помощник».Интересно, что делать с кодом, чтобы сохранить принципы MVC и сделать весь веб-сайт более удобным для модульного тестирования.

Grettings

Ответы [ 2 ]

2 голосов
/ 09 ноября 2010

Чтобы ваш контроллер не зависел от помощника по манипулированию изображениями, вам нужно, чтобы он взаимодействовал с интерфейсом, а не с конкретным классом.Поэтому создайте интерфейс, подобный IImageManipulator, и пусть ваши методы вызова контроллера будут использоваться в этом интерфейсе, а не в вашем классе.Ваш класс манипулятора изображения должен будет реализовать этот интерфейс.Вам нужно будет использовать метод внедрения зависимостей, чтобы внедрить конкретную реализацию в ваш контроллер (есть несколько приемлемых способов сделать это).

Теперь ваш контроллер будет зависеть от интерфейса, а не от конкретной реализации,что позволяет вам тестировать ваш контроллер модульно с помощью интерфейса IImageManipulator и вводить этот макет в контроллер.

2 голосов
/ 09 ноября 2010

Сделайте вспомогательный класс нестатичным, объявите его в качестве аргумента конструктора контроллера и внедрите его в фабрику контроллеров, использующую внедрение зависимостей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...