Asp.net mvc 3 MVC3异步控制器的单元测试
我读过几篇关于这个话题的帖子,但都没有直接提到我的问题。测试同步控制器方法时,可以断言该方法返回的是您期望的类型:Asp.net mvc 3 MVC3异步控制器的单元测试,asp.net-mvc-3,Asp.net Mvc 3,我读过几篇关于这个话题的帖子,但都没有直接提到我的问题。测试同步控制器方法时,可以断言该方法返回的是您期望的类型: Assert.IsInstanceOfType(result,typeof(JsonResult)); 但是,在测试异步控制器方法时,我只能断言AsyncManager返回的类型是正确的类型: var result = controller.AsyncManager.Parameters["articles"]; // Assertions Assert.IsNotNull(re
Assert.IsInstanceOfType(result,typeof(JsonResult));
但是,在测试异步控制器方法时,我只能断言AsyncManager返回的类型是正确的类型:
var result = controller.AsyncManager.Parameters["articles"];
// Assertions
Assert.IsNotNull(result);
Assert.IsInstanceOfType(result,typeof(IEnumerable<NewsArticle>));
var result=controller.AsyncManager.Parameters[“articles”];
//断言
Assert.IsNotNull(结果);
IsInstanceOfType(result,typeof(IEnumerable));
在我看来,我应该测试已完成方法的返回类型,在我的例子中,它是一个JsonResult:
public JsonResult GetPublishedNewsArticlesCompleted(IEnumerable<NewsArticle> articles)
{
return Json(articles, JsonRequestBehavior.AllowGet);
}
public JsonResult GetPublishedNewsArticlesCompleted(IEnumerable文章)
{
返回Json(articles,JsonRequestBehavior.AllowGet);
}
但我还没弄明白怎么做。我在一篇帖子中读到他说“xxxCompleted的代码很简单,甚至可能不需要测试”。我不买它。完成的方法及其返回类型是我在本测试中最关心的
所以我的问题是如何测试我完成的方法是否真的返回了一个JsonResult?还是迪诺是对的而我不在乎
谢谢。我对异步方法所做的只是测试异步方法,而不是测试完成的方法。我这样做的决定是基于这样一个事实,即在完成的方法中没有业务逻辑。它所做的只是序列化我的返回对象,如果它是跨域的,则将其作为Json或Jsonp传递回去。我没有写它,大多数人会告诉你,如果你没有写,就不要测试它。我用异步方法做的只是测试异步方法,而不是完成的方法。我这样做的决定是基于这样一个事实,即在完成的方法中没有业务逻辑。它所做的只是序列化我的返回对象,如果它是跨域的,则将其作为Json或Jsonp传递回去。我没有写,大多数人会告诉你,如果你没有写,就不要测试