【发布时间】:2015-02-23 17:37:50
【问题描述】:
我有以下控制器动作方法。
[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);
}
从我在action方法中的代码可以看出,我正在使用AJAX重定向,因此返回要重定向到的url的JSON。
现在,测试显然失败了。我是单元测试的新手,想知道我需要对 Testmethod 进行哪些更新才能使其通过。请指导我。谢谢。
【问题讨论】:
-
是否抛出错误?
-
存储库中的方法返回一个整数。由于我是MOQing数据库访问,我已经添加了。错误是“对象引用未设置为对象的实例。”。这个错误是抛出我返回 JSON 的地方
-
是的,有一个错误被抛出。请查看我之前的评论。
标签: unit-testing moq