0
使用MSTest,當我嘗試運行一個具有動態類型的測試時,該動態類型是JSON對象(來自API查詢)的容器I我希望能夠在下面註釋掉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