【问题标题】:ASP.NET MVC Simple Controller Unit TestASP.NET MVC 简单控制器单元测试
【发布时间】:2013-08-15 15:41:25
【问题描述】:

我正在尝试学习单元测试,并且有这个超级简单的课程,带有单元测试:

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。 :)

【问题讨论】:

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


【解决方案1】:

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

这是一个相关的 Stack Overflow 问题: ASP.NET MVC: Unit testing controllers that use UrlHelper

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

归结为模拟HttpRequestBase 和HttpResponseBase,这样您就可以模拟实际的HttpContextBase,UrlHelper 类正在使用它。

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2016-08-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-01
      • 1970-01-01
      • 2011-01-30
      • 2010-09-26
      相关资源
      最近更新 更多