मैं एक विधि है कि रिटर्नकिसी अज्ञात प्रकार की संपत्ति को कैसे पढ़ा जाए?
return new System.Web.Mvc.JsonResult()
{
Data = new
{
Status = "OK",
}
}
मैं एक इकाई परीक्षण जहां मुझे लगता है कि jsonResult.Data.status= "OK"
सत्यापित करने की आवश्यकता लिखने के लिए की जरूरत है।
मैं स्थिति संपत्ति कैसे पढ़ूं?
अद्यतन: मैंने कोशिश की [असेंबली: InternalsVisibleTo ("TestingAssemblyName")], लेकिन इससे मदद नहीं मिली। मुझे त्रुटि मिल रही है {"'System.Web.Mvc.JsonResult' में 'स्थिति' के लिए परिभाषा नहीं है}}
इसके अलावा मुझे लगता है कि मैं जिस कोड का परीक्षण कर रहा हूं उसे संशोधित करना पसंद नहीं करूंगा।
तो मैंने जॉन की सलाह ली और प्रतिबिंब का उपयोग किया।
dynamic foo = ret.Data;
Assert.AreEqual("OK", foo.status);
नोट है कि आप अपने उत्पादन में गुमनाम प्रकार करने के लिए अपने इकाई परीक्षण विधानसभा पहुँच प्रदान करने के क्रम में [InternalsVisibleTo]
का उपयोग करना होगा:
var type = jsonResult.Data.GetType();
var pinfo = type.GetProperty("Status");
string statusValue = pinfo.GetValue(jsonResult.Data,null).ToString();
Assert.AreEqual("OK", statusValue);
एक एमएस यूनिट टेस्ट या जावास्क्रिप्ट में? –
यदि आप इसे सी # से कर रहे हैं, तो आप केवल 'गतिशील' का उपयोग कर सकते हैं और गतिशील बांधने की मशीन का ख्याल रखना चाहिए। – vcsjones
गैलियो यूनिट परीक्षण। मैं जो कोशिश कर रहा हूं वह है Assert.AreEqual ("OK", jsonResult.Data.Status) – developer747