我正在尝试测试一个非常简单的 Controller 索引方法,如下所示:
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<>
有人可以帮我吗?
最佳答案
ViewName
属性为 null 或空字符串,因为您没有在 return View(...)
方法调用中指定它。这可能是预期的行为,因为如果您没有指定 View 名称,框架将推断 View 名称。
看起来您的预期结果实际上是 null
而不是 "Index"
。
关于c# - 如何测试这个简单的索引方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57361833/