【发布时间】:2018-08-24 23:19:22
【问题描述】:
我正在尝试测试 ViewBag 数据是否从我的控制器中填充,但在我的单元测试中,无论我设置什么,我的属性都会返回 null。
控制者:
public ActionResult Index()
{
_logger.LogEvent(LogLevel.Trace, null, $"Landing page requested", null);
ViewBag.InstrumentationKey = _instrumentationKey;
return View("Index");
}
单元测试:
[TestMethod]
public void TestIndexHasApplicationInsightsKey()
{
// Arrange
var mock = new Mock<ILogging>();
mock.Setup(logging => logging.LogEvent(It.IsAny<LogLevel>(), It.IsAny<Exception>(), It.IsAny<string>(), It.IsAny<object[]>())).Verifiable();
HomeController controller = new HomeController(mock.Object);
// Act
ViewResult result = controller.Index() as ViewResult;
// Assert
Assert.AreNotEqual(null, result.ViewBag.InstrumentationKey as string);
}
结果:
Assert.AreNotEqual 失败。预期任何值,除了:。实际:。
我阅读了一些答案,说我应该访问我的属性视图 ViewData["InstrumentationKey"],但这也总是返回 null。
知道我做错了什么导致我无法测试 ViewBag 属性值吗?
【问题讨论】:
标签: c# asp.net-mvc unit-testing