代码之家  ›  专栏  ›  技术社区  ›  Dave Mateer

使用mock框架(Moq)进行MVC测试

  •  0
  • Dave Mateer  · 技术社区  · 14 年前

    问题:用户代码未处理ArgumentException。无法获取StrongNameKeyPair的公钥

    HomeController CreateHomeControllerAs(string userName)
        {
            var mock = new Mock<ControllerContext>();
            mock.SetupGet(p => p.HttpContext.User.Identity.Name).Returns(userName); // fails here
            mock.SetupGet(p => p.HttpContext.Request.IsAuthenticated).Returns(true);
    
            var controller = new HomeController();
            controller.ControllerContext = mock.Object;
    
            return controller;
        }
    
        [TestMethod]
        public void should_be_able_to_get_to_index_page_logged_in()
        {
            HomeController controller = CreateHomeControllerAs("dave");
        }
    

    正在使用Moq引用。。。WinXP下的VS2010。

    1 回复  |  直到 13 年前
        1
  •  1
  •   Darin Dimitrov    14 年前

    你的代码没有问题。我刚测试过,效果很好。问题在于 Moq 装配。您需要授予 C:\Documents and Settings\AllUsers\ApplicationData\Microsoft\Crypto\RSA\MachineKeys this discussion .

    Moq.dll