2
我已閱讀了有關此主題的幾篇文章,但都沒有直接解決我的問題。當您測試同步控制器的方法,你可以斷言,該方法返回你所期望的類型:單元測試MVC3 AsyncController
Assert.IsInstanceOfType(result,typeof(JsonResult));
然而,測試異步控制器方法時,我只能夠斷言,由AsyncManager返回的類型是正確的類型:
var result = controller.AsyncManager.Parameters["articles"];
// Assertions
Assert.IsNotNull(result);
Assert.IsInstanceOfType(result,typeof(IEnumerable<NewsArticle>));
在我看來,我應該測試的完成方法的返回類型的在我的情況是JsonResult:
public JsonResult GetPublishedNewsArticlesCompleted(IEnumerable<NewsArticle> articles)
{
return Json(articles, JsonRequestBehavior.AllowGet);
}
但我一直無法弄清楚如何做到這一點。我讀了Dino Esposito的一篇文章,他在其中說:「xxxCompleted的代碼是微不足道的,可能甚至不需要測試」。我不買它。 Completed方法和返回類型是我在這個測試中最關心的。
所以我的問題是我怎麼測試我的完整的方法實際上是給我回了JsonResult?還是迪諾是正確的,我只是不應該在意?
謝謝。