您好我需要使用Moq模拟以下方法。
[HttpPost]
public ActionResult Create(TagsViewModel tagsViewModel)
{
return RedirectToAction("Index", new { sid = specification.SpecificationId }).Success("Saved Successfully!");
}
但是我在上面的一行中收到了一个例外。问题是,在那里的Success()方法中,它使用'System.Web.HttpContext'类而不模拟代码失败。所以我想在测试方法中嘲笑'Success'方法本身,这样我就不必担心模拟HttpContext了。那可能吗? ('Success()'方法与测试类不同)
答案 0 :(得分:0)
你也许可以尝试这样的事情
[HttpPost]
public ActionResult Create(TagsViewModel tagsViewModel)
{
var someUnknownObj = TestableRedirectToAction(tagsViewModel);
return someUnknownObj.Success("Saved Succesfully");
}
internal someUnknownObjType TestableRedirectToAction(TagsViewModel tagsViewModel)
{
// ................................
// ................................
return RedirectToAction("Index", new { sid = specification.SpecificationId })
}
现在测试TestableRedirectToAction方法,该方法包含所有逻辑 - Success()