1)ActionExecutedContextでモッキングRequest.Url:
var request = new Mock<HttpRequestBase>();
request.SetupGet(r => r.HttpMethod).Returns("GET");
request.SetupGet(r => r.Url).Returns(new Uri("http://somesite/action"));
var httpContext = new Mock<HttpContextBase>();
httpContext.SetupGet(c => c.Request).Returns(request.Object);
var actionExecutedContext = new Mock<ActionExecutedContext>();
actionExecutedContext.SetupGet(c => c.HttpContext).Returns(httpContext.Object);
2)あなたはRememberUrlAttributeの公開コンストラクタでセッションラッパーを注入していると仮定します。
var rememberUrl = new RememberUrlAttribute(yourSessionWrapper);
rememberUrl.OnActionExecuted(actionExecutedContext.Object);
// Then check what is in your SessionWrapper
ActionExecutedContextは、ControllerContextから派生したものです。 Haackedの答えはちょうどControllerContextを嘲笑することです - http://stackoverflow.com/questions/32640/mocking-asp-net-mvc-controller-context/32672#32672正確に何を混乱させていますか? –
まだ完了していません。私はasp.net mvc innerworkingsの知識が不足していると思います。 :) –
あなたのコードを投稿してください。私たちは助けてくれるでしょう:) –