1

我正在尝试学习单元测试,并通过单元测试来学习这个超级简单的课程:

public class HomeController : Controller
{
    public ActionResult Index()
    {
        return View(new HomeViewModel
        {
            LogoUrl = this.Url.Content("~/Images/product.png")
       });
    }
}

[TestMethod]
public void Index()
{
    Assert.IsNotNull(new HomeController().Index() as ViewResult);
}

我收到空引用异常。我相信它与在单元测试中this.Url()不使用有关。HttpContext

如何在仍然使用我的 时让单元测试通过this.Url()?我可以使用 Moq。:)

4

2 回答 2

2

可以在这里找到答案作为示例(要点): https ://gist.github.com/johnnyreilly/4959924

这是一个相关的堆栈溢出问题: ASP.NET MVC: Unit testing controllers that use UrlHelper

两者都应该帮助你走上正确的轨道。

它归结为模拟 theHttpRequestBase和 the ,HttpResponseBase因此您可以模拟班级HttpContextBase正在使用的实际UrlHelper

于 2013-08-16T15:55:45.317 回答
0

意识到这是一个老问题,但对于其他可能会停下来的人,请查看 LosTechies 总是乐于助人的工作人员的单元测试简单 ASP.NET MVC 控制器:http: //lostechies.com/chrismissal/2010/02/05/unit-测试-simple-asp-net-mvc-controllers/

于 2014-07-10T19:53:43.123 回答