Метод действия в моем приложении 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 и имеет ожидаемое значение, поэтому, если связыватель времени выполнения не играл смешно, тест прошел бы.
Что я не получаю? Что я делаю не так и как это исправить? Как я могу выполнить проверку утверждения?