【发布时间】:2020-04-13 11:43:22
【问题描述】:
我有各种需要测试的 ViewBag 设置正确。我从测试一个简单的 ViewBag.Title 开始,然后我将转到其他实际传递动态数据的 ViewBags。
我正在尝试在 Create.cshtml 中测试这个 ViewBag.Title
@{
ViewBag.Title = "Create";
}
此视图的预订控制器:
// GET: Booking/Create
public ActionResult Create()
{
return View();
}
我尝试了以下方法:
[TestMethod]
public void BookingTest()
{
var controller = new BookingController();
var ar = controller.Create() as ViewResult;
Assert.AreEqual("Create", ar.ViewData["Title"]);
}
也试过了:
[TestMethod]
public void BookingTest()
{
var controller = new BookingController();
//var ar = controller.Create() as ViewResult;
Assert.AreEqual("Create", controller.ViewBag.Title);
}
两个单元测试都失败并返回以下内容:Message: Assert.AreEqual failed. Expected:<Create>. Actual:<(null)>.
谁能看出我做错了什么?
【问题讨论】:
-
你不应该习惯依赖 ViewBag。如果可能的话,使用强类型模型会更好。
标签: c# asp.net asp.net-mvc unit-testing