gpt4 book ai didi

asp.net-mvc - ASP.NET MVC 单元测试 - session

转载 作者:行者123 更新时间:2023-12-03 05:06:53 25 4
gpt4 key购买 nike

搜索过 StackOverflow 和 Google 后,我认为我所做的应该是正确的,但结果似乎并不顺利

    [TestMethod]
public void LoginAction_Should_Return_View_and_User_Authenticated()
{
// Arrange
var mock = new Mock<ControllerContext>();
var mockSession = new Mock<HttpSessionStateBase>();
mock.Setup(p => p.HttpContext.Session).Returns(mockSession.Object);

var testData = FakeUserData.CreateTestUsers();
var repository = new FakeUserRepository(testData);
var controller = new AccountController(repository);
controller.ControllerContext = mock.Object;

// Act
var result = controller.Login("testuser1", "testuser1");

// Assert
Assert.AreEqual("testuser1", controller.HttpContext.Session["Username"]);
Assert.IsTrue((bool)controller.HttpContext.Session["IsAuthenticated"]);
Assert.IsInstanceOfType(result, typeof(RedirectToRouteResult));
}

当我运行测试时,controller.HttpContext.Session["Username"] 的值为空,但是我使用 session 助手将该值设置为用户名。我是在做一些完全错误的事情,还是其他什么事情?任何帮助将不胜感激。

最佳答案

使用 Mock.Verify 检查底层代码是否尝试设置 Session["Username"]。

如果您的代码需要设置 session 变量并使用它 - 请查看 here

Quickstart也是无价的。

关于asp.net-mvc - ASP.NET MVC 单元测试 - session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1385352/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com