我有一个方法我正在尝试模拟(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.
最终,我会将它作为更大的假“会话”的一部分进行测试。
HttpContext.Current = new HttpContext(cv, new HttpResponse(null));
HttpRequest的模拟失败,因为它是一个密封的类。
所以我对如何测试这个代码单元感到难过。