【发布时间】:2011-11-11 22:43:19
【问题描述】:
我已经阅读了几篇关于这个主题的帖子,但都没有直接解决我的问题。当您测试同步控制器方法时,您可以断言该方法正在返回您期望的类型:
Assert.IsInstanceOfType(result,typeof(JsonResult));
但是,在测试异步控制器方法时,我只能断言 AsyncManager 返回的类型是正确的类型:
var result = controller.AsyncManager.Parameters["articles"];
// Assertions
Assert.IsNotNull(result);
Assert.IsInstanceOfType(result,typeof(IEnumerable<NewsArticle>));
在我看来,我应该测试 Completed 方法的返回类型,在我的例子中是 JsonResult:
public JsonResult GetPublishedNewsArticlesCompleted(IEnumerable<NewsArticle> articles)
{
return Json(articles, JsonRequestBehavior.AllowGet);
}
但我无法弄清楚如何做到这一点。我读了Dino Esposito 的帖子,他说“xxxCompleted 的代码很简单,甚至可能不需要测试”。我不买它。 Completed 方法和它的返回类型是我在这个测试中最关心的。
所以我的问题是如何测试我的 Completed 方法实际上是否给了我一个 JsonResult?还是 Dino 是对的,我不应该在意?
谢谢。
【问题讨论】:
标签: asp.net-mvc-3