使用 Moq..C# 获取会话变量值
Get session variable value using Moq..C#
.Net 4.6.1 C#
我正在使用最小起订量进行单元测试。我有可以使用 Moq 成功设置的会话变量:
Mock<HttpSessionStateBase> _mockSession = new Mock<HttpSessionStateBase>();
Mock<HttpContextBase> _mockHttpContext = new Mock<HttpContextBase>();
_mockHttpContext.SetupGet(ctx => ctx.Session).Returns(_mockSession.Object);
_mockHttpContext.SetupGet(p => p.Session["windowsUsername"]).Returns("Joe Cool");
如果我检查活动会话,那里有键 "windowsUsername",其值为 "Joe Cool"。现在我想获取刚刚使用 Moq 创建的会话密钥的值。这不起作用:
var name = _mockHttpContext.SetupGet(p => p.Session["windowsUsername"]);
如何获取使用 Moq 创建的会话对象的值?谢谢
将 _mockSession
设置为 return 预期值,而不是 _mockHttpContext
。
Mock<HttpSessionStateBase> _mockSession = new Mock<HttpSessionStateBase>();
Mock<HttpContextBase> _mockHttpContext = new Mock<HttpContextBase>();
_mockSession.Setup(x => x["windowsUserName"]).Returns("Joe Cool");
_mockHttpContext.SetupGet(ctx => ctx.Session).Returns(_mockSession.Object);
Assert.AreEqual("Joe Cool", _mockHttpContext.Object.Session["windowsUserName"]);
.Net 4.6.1 C#
我正在使用最小起订量进行单元测试。我有可以使用 Moq 成功设置的会话变量:
Mock<HttpSessionStateBase> _mockSession = new Mock<HttpSessionStateBase>();
Mock<HttpContextBase> _mockHttpContext = new Mock<HttpContextBase>();
_mockHttpContext.SetupGet(ctx => ctx.Session).Returns(_mockSession.Object);
_mockHttpContext.SetupGet(p => p.Session["windowsUsername"]).Returns("Joe Cool");
如果我检查活动会话,那里有键 "windowsUsername",其值为 "Joe Cool"。现在我想获取刚刚使用 Moq 创建的会话密钥的值。这不起作用:
var name = _mockHttpContext.SetupGet(p => p.Session["windowsUsername"]);
如何获取使用 Moq 创建的会话对象的值?谢谢
将 _mockSession
设置为 return 预期值,而不是 _mockHttpContext
。
Mock<HttpSessionStateBase> _mockSession = new Mock<HttpSessionStateBase>();
Mock<HttpContextBase> _mockHttpContext = new Mock<HttpContextBase>();
_mockSession.Setup(x => x["windowsUserName"]).Returns("Joe Cool");
_mockHttpContext.SetupGet(ctx => ctx.Session).Returns(_mockSession.Object);
Assert.AreEqual("Joe Cool", _mockHttpContext.Object.Session["windowsUserName"]);