2011-04-24 75 views

回答

2

试试这个:

更换HttpContext.Current.User.Identity.Namehelper.ViewContext.HttpContext.User.Identity.Name

然后,您将在单元测试中创建一个HtmlHelper实例并嘲笑其依赖关系。然后传递HtmlHelper实例作为辅助函数中的参数,如下所示:

 var mockViewContext = new Mock<ViewContext>(); 
     mockViewContext.Setup(x => x.HttpContext.User.Identity.Name).Returns("TheUser"); 

     var mockViewDataContainer = new Mock<IViewDataContainer>(); 

     var helper = new HtmlHelper(mockViewContext.Object, mockViewDataContainer.Object); 

     var output = GetLoggedUsername(helper); 

     Assert.AreEqual("RepoName - [TheUser]", output); 
+0

谢谢John它工作。如果你能帮助我解决这些问题,我将不胜感激。 http://stackoverflow.com/questions/5769163/asp-net-mvc-unit-testing-override-initialize-method。还有这个如果你不介意http://stackoverflow.com/questions/5767640/moq-setup-vs-setupget – 2011-04-24 21:32:04