作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我在使用最小起订量模拟返回 session 值集时遇到问题。使用以下内容
public class TestHelpers
{
public long sessionValue = -1;
public HttpContextBase FakeHttpContext()
{
var httpContext = new Mock<HttpContextBase>();
var session = new Mock<HttpSessionStateBase>();
httpContext.Setup(x => x.Session).Returns(session.Object);
httpContext.SetupGet(x => x.Session["id"]).Returns(sessionValue);
httpContext.SetupSet(x => x.Session["id"] = It.IsAny<long>())
.Callback((string name, object val) =>
{
sessionValue = (long)val;
});
}
}
当我尝试获取外部使用的值时
var th = new TestHelpers();
HttpContextBase httpContext = th.FakeHttpContext();
做一些设置 Session["id"]
的事情var sessionid = httpContext.Session["id"];
sessionid 结果是-1。但是我可以使用
获取设置的 session 值th.sessionValue
怎么了?难道我不能简单地通过 Moq 返回设置值吗?
最佳答案
我需要停止回答我自己的问题。事实证明我需要像这样再次模拟 Session["id"] ...
httpContext.SetupSet(x => x.Session["id"] = It.IsAny<long>())
.Callback((string name, object val) =>
{
sessionValue = (long)val;
httpContext.SetupGet(x => x.Session["id"]).Returns(sessionValue);
});
关于c# - 最小起订量模拟和跟踪 session 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1642631/
我是一名优秀的程序员,十分优秀!