Я хочу проверить, что вызывается метод "Create" в _eventManager в моем контроллере.Когда я запускаю свой тест, я получаю следующее исключение:
Метод теста Baigent.TheDoNation.Application.Tests.EventControllerTest.Create_Post_IfModelIsValidRedirectToSuccessfullyCreatedViewOccurs сгенерировал исключение: System.ArgumentException a: недопустимый параметр: - недопустимый параметр: недопустимый: недопустимый: on-overd: исключение: недопустимый для on-on: недопустимый: on-overd: исключение: недопустимый для on-on: недопустимый: on-overd: исключение: недопустимый: on = overidm.CreateEvent (It.IsAny (), It.IsAny ()).
Код для контроллера:
public ActionResult Create(Event eventObject, FormCollection collection)
{
if (ModelState.IsValid)
{
_eventManager.CreateEvent(eventObject, User.Identity.Name);
return RedirectToAction("SuccessfullyCreated", new { });
}
// Invalid - redisplay form with errors
return View(GetEventViewModel(eventObject));
}
Поле _eventManager устанавливается в конструкторе.Мой тест:
var eventManagerMock = new Mock<EventManager>(new FakeEventsRepository());
eventManagerMock.Setup(m => m.CreateEvent(It.IsAny<Event>(), It.IsAny<String>())).Verifiable("No call to CreateEvent on the EventManager was made");
var eventController = new EventController(eventManagerMock.Object);
var newEvent = new Event {Name = "Test Event", Date = DateTime.Now, Description = "Test description"};
// Act
var result = eventController.Create(newEvent, new FormCollection()) as RedirectToRouteResult;
// Assert
eventManagerMock.Verify(m => m.CreateEvent(It.IsAny<Event>(), It.IsAny<String>()));
Assert.IsNotNull(result, "RedirectToRouteResult should be returned");
Assert.AreEqual("SuccessfullyCreated", result.RouteValues["action"], "Redirect should be to SuccessfullyCreated view");
Пожалуйста, помогите!