【发布时间】:2010-11-28 15:32:06
【问题描述】:
我正在尝试为我们的注销方法编写单元测试。其中包括FormsAuthentication.SignOut()。但是,它会抛出 System.NullReferenceException。
我创建了一个模拟; HttpContext(使用最小起订量),但它显然缺少一些东西。
我的模拟上下文包含:
-
Request上的模拟HttpRequestBase -
Response上的模拟HttpResponseBase - 在
Request.Cookies上有一个HttpCookieCollection,在Response.Cookies上有另一个 -
User上的模拟IPrincipal
我知道我可以走包装器路线并在其位置注入一个空的 FormsAuth 包装器对象,但我真的很想避免 3 个附加文件只是为了修复一行代码。那个,我仍然对答案感到好奇
所以我的问题是“HttpContext 需要什么来允许FormsAuthentication.SignOut() to execute.”
【问题讨论】:
标签: asp.net-mvc unit-testing moq