WebApi单元测试HttpContextHelper与Mock

时间:2015-06-29 15:20:09

标签: c# unit-testing asp.net-web-api

我有一个方法我正在尝试模拟(MOQ)进行单元测试,但是我遇到了困难,因为所有的道具都是只读的,而模拟失败因为它是一个密封的类。这个方法挂在控制器上,我已经拥有了所有基础设施。

首先是我试图测试的方法。

public CarResponse(Common.Models.Car car)
{
    string currentAcceptType = HttpContextHelper.Current.Request.Headers["Accept"];

    ....removed for brevity.....

}

我已经尝试注入一个实例化的对象,但这样会有效,但我的Headers只读,所以我看不到如何将标题设置为我想要的?

HttpRequest cv = new HttpRequest(null, "http://localhost:24244", "/cars/_services/addNewPickup");
//so far so good but then when I want to add my headers every property is read only.
cv.Headers.Add("qewr", "adsf"); //This fails.

MSDN

最终,我会将它作为更大的假“会话”的一部分进行测试。

HttpContext.Current = new HttpContext(cv, new HttpResponse(null));

HttpRequest的模拟失败,因为它是一个密封的类。

所以我对如何测试这个代码单元感到难过。

0 个答案:

没有答案