result.viewname总是string.empty

时间:2009-11-22 18:42:37

标签: c# asp.net-mvc nunit

我似乎无法返回结果.ViewName用于Nunit测试,因为它总是返回string.empty。我已经在我的控制器中明确设置了视图的名称,并希望测试能够选择它。我已经有了一次搜索,如果我明确地设置它,我似乎应该得到Viewname。有人有任何想法吗?

public class HomeController : Controller
{

    public ActionResult Index()
    {
        return View("Index");
    }
}

我的测试看起来像这样

    [Test]
    public void TestIndexView()
    {
        var controller = new HomeController();
        var result = controller.Index() as ViewResult;
        Assert.AreEqual("Index", result.ViewName);
    }

2 个答案:

答案 0 :(得分:2)

您是否尝试过清洁和重建解决方案?它应该没有问题。

答案 1 :(得分:0)

您需要return new View("Index");。如果这是C的原因是因为你在View中创建Index()的方式它只是存储在堆栈上并且当函数结束时超出范围(因此被收集) 。这会导致C崩溃,但在这方面C#似乎更聪明一些。