Я пытаюсь проверить, что данные ViewBag заполняются с моего контроллера, но в моих модульных тестах мое свойство возвращает значение NULL независимо от того, что я установил.
controller:
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 не удалось.Ожидается любое значение, кроме: <(null)>.Фактический: <(нуль)>.
Я прочитал несколько ответов, в которых говорилось, что я должен получить доступ к своему представлению свойства ViewData ["InstrumentationKey"], но это также всегда возвращает ноль.
Любая идея, что я делаю неправильночто не позволило бы мне проверить значение свойств ViewBag?