Следует ли мне использовать AutoMapper в своих модульных тестах?

Я пишу модульные тесты для методов контроллера ASP.NET MVC.

Эти контроллеры имеют зависимость от IMapper - интерфейса, который я создал для абстрагирования AutoMapper, передаваемого через внедрение конструктора с использованием Castle Windsor.

Методы действий используют IMapper для сопоставления объектов домена с ViewModel объекты и обратно, стремясь сохранить СУХИЕ вещи и краткость методов действий.

В моих модульных тестах я должен

  1. настроить AutoMapper с правильными привязками (они созданы с использованием профилей AutoMapper, так тестируемый и повторно используемый между веб-сайтом и проектами модульного тестирования) и передайте это как правильную реализацию AutoMapper IMapper .

  2. Передайте имитационные объекты (я использую Moq) для IMapper , в зависимости от теста (это означало бы дублирование некоторой работы в коде настройки теста, чтобы убедиться, что объекты, возвращаемые макетом макета, связаны с объектами, которые макет макета симулирует отображать).

  3. Ручная настройка AutoMapper только с отображениями, которые, я думаю, мне понадобятся для каждого теста (много работы и означает, что я не тестирую сопоставления, которые действительно будут использоваться).

Каково ваше мнение об использовании кода инфраструктуры в модульных тестах? В какой момент он становится интеграционным тестом (т.е. тестированием интеграции AutoMapper и моих контроллеров)?

Похоже, что 2 - это пуристский взгляд, хотя я думаю, что мне нужно больше узнать о Moq и о том, как заставить его возвращать значения, которые относятся к фактическим значениям, переданным в методы, которые он издевается.

8
задан Neil Barnwell 12 January 2011 в 00:36
поделиться