Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 3 MVC3异步控制器的单元测试_Asp.net Mvc 3 - Fatal编程技术网

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传递回去。我没有写,大多数人会告诉你,如果你没有写,就不要测试