JsonResult を返すコントローラーの 1 つでメソッドを単体テストしようとしていました。驚いたことに、次のコードは機能しませんでした。
[HttpPost]
public JsonResult Test() {
return Json(new {Id = 123});
}
これは私がそれをテストする方法です(テストコードが別のアセンブリにあることにも注意してください):
// Act
dynamic jsonResult = testController.Test().Data;
// Assert
Assert.AreEqual(123, jsonResult.Id);
はAssert
例外をスローします。
「オブジェクト」には「ID」の定義が含まれていません
それ以来、次を使用して解決しました。
[HttpPost]
public JsonResult Test() {
dynamic data = new ExpandoObject();
data.Id = 123;
return Json(data);
}
最初のものが機能しない理由を理解しようとしていますか? また、基本的に匿名型以外のすべてで動作しているようです。