Метод действия в моем приложении ASP.NET MVC2 возвращает объект JsonResult, и в моем модульном тесте я хотел бы проверить, что возвращенный объект JSON действительно содержит ожидаемые значения.
Я пробовал это:
1. dynamic json = ((JsonResult)myActionResult).Data;
2. Assert.AreEqual(JsonMessagesHelper.ErrorLevel.ERROR.ToString(), json.ErrorLevel);
Но я получаю RuntimeBinderException «объект» не содержит определения «ErrorLevel» ».
Однако, когда я помещаю точку останова в строку 2 и проверяю динамическую переменную json (см. Рисунок ниже), она, очевидно, содержит содержит строку ErrorLevel и имеет ожидаемое значение, поэтому, если связыватель времени выполнения не шутка, тест пройдёт.
Что я не получаю? Что я делаю не так и как я могу это исправить? Как я могу пройти утверждение?