2013-02-28 208 views
3
public HttpResponseMessage Save(IList<Models.Activity> activities) 
    { 
     //some controller code 
     return Request.CreateResponse(HttpStatusCode.Created, activities, Configuration); 
    } 

如何测试活动是否正确传递给Request.CreateResponse?单元测试ASP.NET WebAPI控制器的POST动作

回答

7

你这里有两种选择。

您可以建立适当的环境,使CreateResponse工作。这个博客帖子有与PostProductReturnsCreatedStatusCode演示:

Here is the link

也可以提交一个请求,在内存中的服务器就像我在这里提到:

MSDN Link

第一个选项是更多的是单元测试,因为它不通过Web API管线走,但它也很难安装和配置。

如果你需要测试的响应体,以及,你可以使用代码,看起来像这样得到那个东西被发送回实体:

ObjectContent content = response.Content as ObjectContent; 
IList<Models.Activity> responseActivities = content.Value; 
+0

我遇到了第一个链接谷歌搜索,但只有它验证状态码。我需要验证资源(在这种情况下是'活动')。 – Ajay 2013-03-01 07:19:03

+0

更新了答案。希望这能回答你的问题。 – 2013-03-01 12:50:48