(APIクエリからの)JSONオブジェクトのコンテナであるタイプの動的テストを実行しようとするとMSTestを使用します。コメントアウトされたJSON要素の参照を下にすることができるようにすることですが、それは失敗します。 '(jsonResponse.message)'を検査する場合、値は「Hi」ですが、単体テストでは機能しません。 なぜですか?ユニットテストjson-netを使用してJSONオブジェクトを動的オブジェクトに逆シリアル化する方法
// http://www.newtonsoft.com/json/help/html/LINQtoJSON.htm // Deserialize json object into dynamic object using Json.net
[TestMethod]
public void DynamicDeserialization()
{
dynamic jsonResponse = JsonConvert.DeserializeObject("{\"message\":\"Hi\"}");
JObject d = JObject.Parse("{\"message\":\"Hi\"}");
Assert.IsTrue((string)d["message"] == "Hi"); // Is ok
// Assert.IsTrue(jsonResponse.message.ToString() == "Hi"); // is not ok
}
「は動作しません」の定義 - あなたは例外を得ていますか?もしそうなら、例外メッセージは何を言いますか?そうでない場合は、どのような行動を観察していますか? –
最後の行のコメントを外し、コードを実行してテストしました/合格しました。何が問題ですか。デバッグ中に 'jsonResponse'を見ると、' JObject'でも 'dynamic'としてラップされていることがわかります。 – Nkosi