Arn*_*psa 15 testing asp.net-mvc action-filter
我只是想模拟ActionExecutedContext,传递它,让过滤器稍微工作并检查结果.
有帮助吗?
你可以在这里找到过滤器的来源
(它有点改变,但目前不是重点).
所以 - 我想要单元测试,RememberUrl过滤器足够智能,可以在会话中保存当前的URL.
eu-*_*-ne 12
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);
Run Code Online (Sandbox Code Playgroud)
2)假设您在RememberUrlAttribute的公共构造函数中注入会话包装器.
var rememberUrl = new RememberUrlAttribute(yourSessionWrapper);
rememberUrl.OnActionExecuted(actionExecutedContext.Object);
// Then check what is in your SessionWrapper
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8542 次 |
| 最近记录: |