c# - 如何测试这个简单的索引方法?
问题描述
我正在尝试测试一个非常简单的控制器索引方法,如下所示:
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(...)
方法调用中指定它。这可能是预期的行为,因为如果您未指定视图名称,框架将推断视图名称。
看起来您的预期结果实际上是null
而不是"Index"
.
推荐阅读
- javascript - AJAX 在我尝试将数据发布到的 url 上显示错误
- google-apps-script - Google Drive:有些用户有明确的权限,有些用户有继承的权限。我能说出区别吗?
- dialogflow-cx - 将 Dialogflow CX 管道导入 Google Data Studio
- inno-setup - 使用xdelta(IsDone,运行bat)在inno setup中修补文件的最佳和正确方法是什么
- c# - 使用列表列表替换元组列表
- python - Pylint:如何修复 ModuleNotFoundError:没有名为“matplotlib”的模块
- scheduled-tasks - Kentico 计划任务在运行后不会自行删除
- python - Python 继承最佳实践 - 放置变量的位置
- python - 如何仅使用已更改的单元格从 QTablewidget 更新 SQL 数据库
- python - 如何在 tkinter python 中移动对象?