Ho un metodo che restituisceCome leggere una proprietà di un tipo anonimo?
return new System.Web.Mvc.JsonResult()
{
Data = new
{
Status = "OK",
}
}
ho bisogno di scrivere uno unit test in cui ho bisogno di verificare che jsonResult.Data.status= "OK"
.
Come si legge la proprietà status?
Aggiornamento: Ho provato [assembly: InternalsVisibleTo ("TestingAssemblyName")], ma questo non ha aiutato. Ho ricevuto l'errore {"'System.Web.Mvc.JsonResult' non contiene una definizione per 'Stato'"}
Inoltre, penso che preferirò non modificare il codice che sto testando.
Quindi ho preso il consiglio di Jon e ho usato la riflessione.
var type = jsonResult.Data.GetType();
var pinfo = type.GetProperty("Status");
string statusValue = pinfo.GetValue(jsonResult.Data,null).ToString();
Assert.AreEqual("OK", statusValue);
in un'unità di test MS o Javascript? –
Se stai facendo questo da C#, puoi semplicemente usare 'dynamic' e lasciare che il raccoglitore dinamico si prenda cura di esso. – vcsjones
test dell'unità gallio. Quello che sto cercando è Assert.AreEqual ("OK", jsonResult.Data.Status) – developer747