JsonResult の Data をテストする時にエラー
Controllerのアクションメソッドにて、
JsonResultのDataを匿名型オブジェクトで設定した時の、
戻り値のテスト方法です。
ある条件下でエラーがでるので、その対処方法を書きます。
アクションメソッド内の実装
return Json(new { pesronName = "山田さん", Message = "やっほー" });
テスト
JsonResult jsonResult = controller.GetPerson(); dynamic data = jsonResult.Data; //assert Assert.AreEqual("山田さん", data.userName); Assert.AreEqual("やっほー", data.Message);
対象方法
ControllerのあるプロジェクトのAssemblyInfo.csに、
[assembly: InternalsVisibleTo("TestProject.Controllers.Test")]
この一行を追加します。
中の文字列は、テストプロジェクトのアセンブリ名を書きます。
これで先ほどのエラーはでなくなり、正しくテストできます。