У меня есть следующий метод действий контроллера.Модуль тестирования метода действия контроллера с использованием MOQ
[HttpPost]
public ActionResult CreateProvider(Provider provider)
{
try
{
int providerCreationSuccessful = _repository.CreateProvider(provider);
if (providerCreationSuccessful == 2)
TempData["userIntimation"] = "Provider Registered Successfully";
//return RedirectToAction("ShowTheListOfProviders");
}
catch (Exception Ex)
{
_logger.Error(Ex.Message);
return View("Error");
}
return Json(new { url = Url.Action("ShowTheListOfProviders", "Provider") });
}
Я написал следующий тестовый пример для описанного выше способа, который работал
[TestMethod()]
public void CreateProviderTest()
{
mockProviderRepository.Setup(provider => provider.CreateProvider(_provider)).Returns(new int());
var providerCreationResult = _providerController.CreateProvider(_provider) as ActionResult;
Assert.IsNotNull(providerCreationResult);
}
Как видно из моего кода в методе действия, я перенаправлять с использованием AJAX, следовательно, возвращая JSON URL-адреса для перенаправления.
Теперь тест явно не работает. Я новичок в модульных тестах и задавался вопросом, какие обновления мне нужно было сделать для Testmethod для его прохождения. Пожалуйста, направляйте меня. Спасибо.
Неисправна ли ошибка? – jackncoke
Метод в репозитории возвращает целое число. Поскольку я MOQing доступ к базе данных, я добавил, что. Ошибка: «Ссылка на объект не установлена в экземпляр объекта.». Эта ошибка возникает, когда я возвращаю JSON –
Да, возникает ошибка. Пожалуйста, проверьте мой предыдущий комментарий. –