ASP.NET MVC Tests Unitaires - Sessions

Avoir cherché StackOverflow, et Google, je pense que ce que je fais est supposé être droit, néanmoins, les résultats ne semblent pas aller bien

    [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));
    }

Quand je lance le test de la valeur du contrôleur.HttpContext.Session["Username"] est null, cependant j'ai défini la valeur du nom de l'utilisateur à l'aide d'un assistant Session. Suis-je en train de faire quelque chose de complètement faux, ou quelque chose d'autre? Toute aide serait grandement appréciée.

  • Merci pour montrer comment, à se moquer d'un contrôleur de Session 🙂
InformationsquelleAutor Tom Bell | 2009-09-06