2013-02-28 207 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