我们试图嘲弄使用RhinoMocks 一个MVC 3应用程序的HttpContext的复合材料部件看起来像这样:建立一个结果为一个模拟
HttpContextBase context = mocks.StrictMock<HttpContextBase>();
HttpRequestBase request = mocks.PartialMock<HttpRequestBase>();
IPrincipal user = mocks.StrictMock<IPrincipal>();
HttpCookieCollection cookies = new HttpCookieCollection();
IIdentity identity = mocks.StrictMock<IIdentity>();
HttpResponseBase response = mocks.PartialMock<HttpResponseBase>();
SetupResult.For(response.Cookies).Return(cookies);
SetupResult.For(context.User).Return(user);
SetupResult.For(user.Identity).Return(identity);
SetupResult.For(context.Request).Return(request);
SetupResult.For(context.Response).Return(response);
mocks.Replay(context);
在我的测试,我需要的用户可以使认证我补充如下:“为IIdentity.get_IsAuthenticated()的结果;已设置了”
var identity = context.User.Identity;
mocks.BackToRecord(identity);
SetupResult.For(identity.IsAuthenticated).Return(true).Repeat.Any();
mocks.Replay(identity);
然而,这导致 异常被抛出。
为什么?我需要做什么才能在我的测试中进行认证设置?
@帕特里克:我看到你编辑了我的问题,你的改变是什么性质?我找不到任何权利。 – 2011-12-20 08:29:15
如果您点击“编辑xxx小时前”的时间链接,您可以查看修订历史记录(带注释)。您会注意到我在第一个代码示例中修复了代码格式。 – PatrickSteele 2011-12-20 13:05:25