Ich habe einige Beiträge zu diesem Thema gelesen, aber keiner geht direkt auf mein Problem ein. Wenn Sie eine synchrone Controller-Methode testen, können Sie sicherstellen, dass die Methode den erwarteten Typ zurückgibt:
Assert.IsInstanceOfType(result,typeof(JsonResult));
Beim Testen von Async-Controller-Methoden konnte ich jedoch nur feststellen, dass der vom AsyncManager zurückgegebene Typ der richtige Typ ist:
var result = controller.AsyncManager.Parameters["articles"];
// Assertions
Assert.IsNotNull(result);
Assert.IsInstanceOfType(result,typeof(IEnumerable<NewsArticle>));
Scheint mir, ich sollte den Rückgabetyp der Completed-Methode, die in meinem Fall ein JsonResult ist, testen:
public JsonResult GetPublishedNewsArticlesCompleted(IEnumerable<NewsArticle> articles)
{
return Json(articles, JsonRequestBehavior.AllowGet);
}
Aber ich habe nicht herausfinden können, wie das geht. Ich las einen Beitrag von Dino Esposito in dem er sagte, dass "der Code von xxxCompleted trivial ist und wahrscheinlich nicht einmal einen Test benötigt". Das kaufe ich ihm nicht ab. Die Methode Completed und ihr Rückgabetyp sind das, was mich in diesem Test am meisten interessiert.
Also meine Frage ist, wie ich testen, dass meine Completed-Methode tatsächlich gibt mir ein JsonResult zurück? Oder ist Dino richtig und ich sollte einfach nicht kümmern?
Gracias.