我有一个asp.net mvc 3项目,它有一个控制器
Response.Cookies.Add()
当我运行一些旧的单元测试时,它们现在死于“响应”,因为它为空。我不知道如何模拟它来解决这个问题。
我在这里看到了几个帖子,但没有一个解决方案似乎有效,也没有人谈论“Cookies”。
答案 0 :(得分:2)
var responseCookies = new HttpCookieCollection();
var mockResponse = Mock.Of<HttpResponseBase>(r => r.Cookies == responseCookies);
//you can use new Mock<>, and the set it up as well, but for simple setups I prefer the above syntax
myTestController.Response = mockResponse;
答案 1 :(得分:1)
创建类,例如ResponseProvider
涵盖此静态功能。在代码中,您将此类添加为下一个依赖项,而不是调用例如responseProvider.AddCookie()
。在测试中,您可以对此ResponseProvider
使用模拟对象。