我想模拟HttpContext的User属性.我正在使用Scott Hanselmans MVCHelper类和RhinoMocks.
我有一个包含代码的单元测试,如下所示:
...
MockIdentity fakeId = new MockIdentity("TEST_USER", "Windows", true);
MockPrincipal fakeUser = new MockPrincipal(null, fakeId);
using (mocks.Record())
{
Expect.Call(fakeHttpContext.User).Return(fakeUser);
}
Run Code Online (Sandbox Code Playgroud)
...
我的MockIdentity和MockPrincipal类分别是符合IIdentity和IPrincipal的模拟.
运行报告的单元测试时出错:
System.NotImplementedException:未实现方法或操作.在System.Web.HttpContextBase.get_User()
当我尝试设置User属性的期望时,就会发生这种情况.
我知道httpContextBase有一个没有实现的getter和setter,但我认为Rhino会在模拟时处理这个问题.
这是否意味着我必须从HttpContextbase派生并覆盖我的mock对象的属性.这看起来很奇怪.
其他用户遇到过此问题,请在此处报告:http: //www.mail-archive.com/rhinomocks@googlegroups.com/msg00546.html