在一個成功的AJAX調用的事件我想回到一個簡單的對象與Success = true
單元測試一個簡單的JsonResult的最佳方法是什麼?
public ActionResult Foo(int id)
{
// ...
return Json(new {Success=true});
}
能正常工作和對象我的javascript接收像
{ Success : true }
長相,而是因爲返回的對象是匿名類型,我不能這樣做(像)在我的測試如下:
var result = (JsonResult)controller.AddNote(id, message);
dynamic data = result.Data;
// Assert
Assert.That(data.Success, Is.EqualTo(true));
於是,我就退役使用允許測試以我想要的方式工作的ExpandoObject,但發送回AJAX響應的JSON是一團糟,as detailed in this question。
[{"Key":"Success","Value":true}]
有一個簡單,乾淨的方式實現什麼似乎像它應該很容易,或者是執行一些自定義序列作爲鏈接的問題的唯一途徑?
您在單元測試中得到的result.Data不能包含json數據,因爲jsonResult序列化程序僅在ExecuteResult方法中運行,該方法未在單元測試中運行。 result.Data中的「數據」只是您在AddNote/Foo操作中分配的匿名數據。你測試的不是json數據! – Elisabeth