J'ai une fonction qui renvoie un type anonyme que je veux tester dans mon contrôleur MVC.
public JsonResult Foo()
{
var data = new
{
details = "something",
more = "More"
};
return Json(data);
}
Je veux vérifier les données que je reçois de la fonction Foo, ce que je fais maintenant, c'est obtenir le type de données et obtenir ses valeurs de propriétés avec réflexion.
[Test]
public void TestOne()
{
var data = _controller.Foo().Data;
var details = data.GetType().GetProperty("details").GetValue(data, null);
var more = data.GetType().GetProperty("more").GetValue(data, null);
Assert.AreEquals("something", details);
Assert.AreEquals("More", more);
}
Existe-t-il un moyen simple similaire à celui-ci pour vérifier les propriétés anonymes ?
[Test]
public void TestTwo()
{
var data = (dynamic) _controller.Foo().Data;
var details = data.details; // RunTimeBinderException object does not contain definition for details
var more = data.more;
Assert.AreEquals("something", details);
Assert.AreEquals("More", more);
}