目前我有溫莎控制器工廠,運作良好。然而,我正在改變我的控制器,讓溫莎爲控制器實例化更多數據。我忘了更新我的安裝程序類,它失敗了。因此,我意識到這是單元測試的完美實例,所以每次運行我的單元測試時都會驗證Windsor的設置是否正確。如何才能單元測試Windsor可以解決Asp.net MVC3控制器依賴關係?
因此,我創建了以下的單元測試:
[TestMethod]
public void Windsor_Can_Resolve_HomeController_Dependencies()
{
// Setup
WindsorContainer container = new WindsorContainer();
// Act
HomeController controller = (HomeController)container.Kernel.Resolve(typeof(HomeController));
}
這正是存在於我的WindsorControllerFactory.GetControllerInstance()
方法,所以我不知道爲什麼,這是行不通的相同的代碼。當這個運行我得到:
Test method MyApp.Tests.Controllers.HomeControllerTest.Windsor_Can_Resolve_HomeController_Dependencies threw exception:
Castle.MicroKernel.ComponentNotFoundException: No component for supporting the service MyApp.Controllers.HomeController was found
我不知道如何解決這個問題。我唯一能想到的是,因爲它在我的測試項目中,而不是我的Asp.net MVC項目,它可能不會自動提取我的CommandAndQueryInstaller
類,其中包含我所有的windsor類型註冊。
單元測試windsor依賴配置的任何建議?
如果您使用'PerWebResquestLifeStyle',問題提問者會問這個問題:http://stackoverflow.com/q/5772497/114029確保您檢查了它。 – 2012-11-03 21:17:41