-1

嗨,我需要使用 Moq 模拟以下方法。

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

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

4

1 回答 1

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

于 2013-02-06T07:06:34.423 回答