我试图在我的一个控制器中对返回 JsonResult 的方法进行单元测试。令我惊讶的是,以下代码不起作用:
[HttpPost]
public JsonResult Test() {
return Json(new {Id = 123});
}
这就是我测试它的方式(另请注意,测试代码位于另一个程序集中):
// Act
dynamic jsonResult = testController.Test().Data;
// Assert
Assert.AreEqual(123, jsonResult.Id);
Assert
抛出异常:
“object”不包含“Id”的定义
我已经通过使用以下方法解决了它:
[HttpPost]
public JsonResult Test() {
dynamic data = new ExpandoObject();
data.Id = 123;
return Json(data);
}
我试图理解为什么第一个不起作用?它似乎也适用于基本上除了匿名类型之外的任何东西。