我在使用Ninject的UnitTesting項目中使用Moq時遇到問題。使用Moq嘲笑對象,在進行UnitTesting時使用Ninject
首先介紹一下我的解決方案。它包含多個項目(BussinesLogic,DAL,基礎設施......)。我的目標是UnitTest我在BussinessLogic項目中使用的邏輯。 該解決方案基本上是爲Windows服務,但我已經放入了邏輯,以便它可以獨立運行。我使用Ninject和我指定天氣我想使用ProductionModule或TestingModule(Windows服務使用ProductionModule,控制檯應用程序使用TestingModule)
我使用工廠模式來獲取ninject內核,只要我需要它在我的內部應用。
我的TestingModule繼承自NinjectModule,其中我重載Load()方法,並在那裏做綁定。例如:
Bind<IStorageManager>().To<StubStorageManager>();
我有StubStorageManager,但它是空的。它只包含來自IStorageManager的方法聲明。
我想要做的事情是(以俗語形式): 創建一個unitTest,我將創建一個指定TestingModule作爲其參數的新內核。然後我想創建一個模擬對象(讓我們來看一個IStorageManager的模擬)storageManagerMock。 IStorageManager中的一些方法返回一個messageObject,所以我可能也需要嘲笑這一點,因此bussiness邏輯正在做一些基於該messageObject的事情。所以我想以某種方式設置該消息對象的屬性,然後調用它的一些businessLogic方法,所以我可以看到邏輯是否正常工作。
我希望我沒有太複雜。
請耐心等待,我完全不懂嘲笑和依賴注入,但願意學習。
可能重複:http://stackoverflow.com/questions/1465849/using-ioc-for-unit-testing – 2011-04-29 13:23:50