Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/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 WebAPI控制器的单元测试后期操作 公共HttpResponseMessage保存(IList活动) { //一些控制器代码 返回请求.CreateResponse(HttpStatusCode.Created、活动、配置); }_Asp.net_Unit Testing_Asp.net Web Api - Fatal编程技术网

ASP.NET WebAPI控制器的单元测试后期操作 公共HttpResponseMessage保存(IList活动) { //一些控制器代码 返回请求.CreateResponse(HttpStatusCode.Created、活动、配置); }

ASP.NET WebAPI控制器的单元测试后期操作 公共HttpResponseMessage保存(IList活动) { //一些控制器代码 返回请求.CreateResponse(HttpStatusCode.Created、活动、配置); },asp.net,unit-testing,asp.net-web-api,Asp.net,Unit Testing,Asp.net Web Api,如何单元测试活动是否正确传递给Request.CreateResponse?这里有两个选项 您可以设置正确的上下文,以便CreateResponse工作。这篇博文用PostProductReturnsCreatedStatusCode演示了这一点: 或者,您可以向内存中的服务器提交请求,就像我在这里提到的: 第一个选项更像是一个单元测试,因为它不经过WebAPI管道,但设置和配置也更难 如果还需要测试响应主体,则可以使用如下代码获取要发回的实体: public HttpRespons

如何单元测试活动是否正确传递给Request.CreateResponse?

这里有两个选项

您可以设置正确的上下文,以便CreateResponse工作。这篇博文用PostProductReturnsCreatedStatusCode演示了这一点:

或者,您可以向内存中的服务器提交请求,就像我在这里提到的:

第一个选项更像是一个单元测试,因为它不经过WebAPI管道,但设置和配置也更难

如果还需要测试响应主体,则可以使用如下代码获取要发回的实体:

    public HttpResponseMessage Save(IList<Models.Activity> activities)
    {
       //some controller code
        return Request.CreateResponse(HttpStatusCode.Created, activities, Configuration);
    }
ObjectContent=response.content作为ObjectContent;
IList responseActivities=content.Value;

我在谷歌上看到了第一个链接,但它只验证了状态码。我也需要验证资源(在本例中为“活动”),更新了答案。希望这能回答你的问题。
ObjectContent content = response.Content as ObjectContent;
IList<Models.Activity> responseActivities = content.Value;