我似乎无法返回结果.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);
}
答案 0 :(得分:2)
您是否尝试过清洁和重建解决方案?它应该没有问题。
答案 1 :(得分:0)
您需要return new View("Index");
。如果这是C的原因是因为你在View
中创建Index()
的方式它只是存储在堆栈上并且当函数结束时超出范围(因此被收集) 。这会导致C崩溃,但在这方面C#似乎更聪明一些。