Я пытаюсь изучить MVC в сочетании с IoC и DI.В своем проекте я также использую Castle, Automapper, NHibernate, NHibernateIntegration.
Благодаря превосходному примеру приложения ToZeSeen от Kozmic, я думаю, что решение в значительной степени уже установлено.Но теперь я хочу выполнить базовую операцию сохранения на уровне метода контроллера.Я просто не понимаю, как это сделать.Я ожидаю, что моя проблема довольно проста, но я новичок в этом, и любая помощь приветствуется.
У меня есть такой досье-контроллер:
[Authorize]
[Transactional]
public class DossierController : BaseController
{
private readonly IRepository repository;
private readonly IMappingEngine mappingEngine;
private readonly ILogger logger;
public DossierController(IRepository repository, IMappingEngine mappingEngine, ILogger logger)
{
this.repository = repository;
this.mappingEngine = mappingEngine;
this.logger = logger;
}
Как вы видите, ему нужен репозиторий,картографирование и регистратор.Как я понимаю, все это настраивается и подключается во время выполнения.
Далее у меня есть метод контроллера, который используется для сохранения досье:
[HttpPost]
[ActionName("Dossier")]
[Transaction]
[AcceptVerbs(HttpVerbs.Post)]
[AcceptParameter(Name = "button", Value = "save")]
public ActionResult Dossier_Save(string button, DossierModel dossierModel, string returnUrl)
{
if (!Request.IsAuthenticated)
return RedirectToAction("Index", "Home");
if (!ModelState.IsValid) return View(dossierModel);
Dossier dossier = mappingEngine.Map<DossierModel, Dossier>(dossierModel);
repository.Save(dossier);
return View();
}
Здесь я просто хочу автоматизировать модель досьев досье и сохраните его с помощью репозитория.
Теперь я хочу провести модульное тестирование с помощью Nunit.Я не хочу что-то издеваться, я хочу настоящий тест на стойкость на уровне контроллера.Для этого мне нужно создать новый контроллер досье и передать правильные аргументы.Теперь я потерян.Как мне создать и настроить аргументы, чтобы они работали так же, как в веб-приложении.Например: Как мне создать правильно настроенный Automapper в Unittest?Как мне создать правильно настроенный репозиторий?Должен ли я использовать контейнер?
Любая помощь, особенно пример кода, высоко ценится!
Заранее спасибо.