说我有一个视图与页面顶部的以下代码:
@{ ViewBag.Title = "About Us"; Layout = "~/Views/Shared/_Layout.cshtml"; }
我有一个控制器方法:
public ActionResult About() { return View(); }
如何测试ViewBag设置正确?
我已经尝试了以下代码。
[TestCase] public void About() { var controller = new AboutController(); var ar = controller.About() as ViewResult; Assert.AreEqual("About Us",ar.ViewBag.Title); }
但是当我运行测试时,我得到以下结果:
Tests.Controllers.AboutControllerTests.About(): Expected: "About Us" But was: null
解决方法
不,你不能测试这样的视图。您最可能获得的是将视图呈现到流写入器中,然后测试生成的HTML。在单元测试中通常不做任何事情。我建议您执行网络测试,以验证视图是否正确。您可以使用
Visual Studio创建网络测试,还可以免费使用
Selenium框架。