【问题标题】:How do I test this simple index method?如何测试这个简单的索引方法?
【发布时间】:2019-08-05 15:36:22
【问题描述】:

我正在尝试测试一个非常简单的控制器索引方法,如下:

public ActionResult Index()
{
   try
   {
       var indexViewModel = new IndexViewModel { SearchViewModel = new SearchViewModel() };
       return View(indexViewModel);
   }
   catch (Exception e)
   {
       Log.Debug("Index method exception: ", e);
       Session["errorMessage"] = e;
       return RedirectToAction("Index", "Error");
   }
}

我正在尝试的测试是这样的:

[TestClass]
public class HomeControllerTest
{
    [TestMethod]
    public void TestIndexView()
    {
        //Arrange
        var controller = new HomeController();

        //Act
        var result = controller.Index() as ViewResult;

        //Assert
        Assert.IsNotNull(result);
        Assert.AreEqual("Index", result.ViewName);
    }
}

但是当我运行测试时,我得到以下错误;

Assert.AreEqual failed. Expected:<Index>,Actual<>

有人可以帮我吗?

【问题讨论】:

  • 你能发布完整的异常消息吗?

标签: c# asp.net-mvc-4 model-view-controller nunit


【解决方案1】:

ViewName 属性为 null 或空字符串,因为您没有在 return View(...) 方法调用中指定它。这可能是预期行为,因为如果您未指定视图名称,框架将推断视图名称。

看起来您的预期结果实际上是 null 而不是 "Index"

【讨论】:

    猜你喜欢
    • 2016-11-04
    • 2018-01-03
    • 1970-01-01
    • 2011-07-08
    • 1970-01-01
    • 2011-04-12
    • 2017-06-23
    • 1970-01-01
    • 2017-09-17
    相关资源
    最近更新 更多