Moq函数调用另一个类

时间:2013-02-06 05:43:34

标签: c# asp.net-mvc unit-testing moq

您好我需要使用Moq模拟以下方法。

[HttpPost]
public ActionResult Create(TagsViewModel tagsViewModel)
{
    return RedirectToAction("Index", new { sid = specification.SpecificationId }).Success("Saved Successfully!");
}

但是我在上面的一行中收到了一个例外。问题是,在那里的Success()方法中,它使用'System.Web.HttpContext'类而不模拟代码失败。所以我想在测试方法中嘲笑'Success'方法本身,这样我就不必担心模拟HttpContext了。那可能吗? ('Success()'方法与测试类不同)

1 个答案:

答案 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()