2016-04-15 10 views
1

は、だから私はどのように照会しますJsonResultで返された匿名型はどうですか?照会するJsonResult Cに#統合テスト

+0

これは役立つかもしれませんします。http:完璧に働い//stackoverflow.com/questions/17232470/how-to-access-jsonresult-data-when-testing-in-asp-net-mvc –

答えて

2

デシリアライズするタイプを定義する必要があります。JsonResult

public class ValidationResults 
{ 
    bool Valid {get;set;} 
    string Message {get;set;} 
} 

public JsonResult CreateWithJson(List<string> values) 
{ 
    if (values == null) return Json(new ValidationResults { Valid = false, Message = "No data was received by the server" }); 
} 

public static void TestEmptyDataFailsGracefully() 
{ 
    var objUt = new MyController(); 
    var actual = objUt.CreateWithJson(new List<string>()); 

    actual.Should().BeOfType(typeof(JsonResult)); 

    var serializer = new JavaScriptSerializer(); 
    var json = serializer.Serialize(actual.Data); 
    ValidationResults validationResult = serializer.Deserialize<ValidationResults>(json); 


    // what I want to do 
    validationResult .Valid.Should.Be(false); 
} 
+0

感謝を。テストプロジェクトのリファレンスを見つける:http://stackoverflow.com/questions/7000811/cannot-find-javascriptserializer-in-net-4-0 – SkeetJon

関連する問題