2011-04-24 36 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