0
我有一個ASP.NET MVC應用程序,它具有用於依賴注入的NInject容器。正如所宣稱的,IoC使我能夠輕鬆地單獨測試組件,然後在應用程序中輕鬆組成組件。如何測試DI(NInject)的使用
我想測試我對DI的使用。我不想測試DI組件是否正常工作。我相信NInject的人很好。我想測試一下,我是否已經使用DI根據應用程序的意圖正確組成組件。我不想測試NInject,我想測試我對NInject的使用。 (我也不想試圖將它作爲單元測試或集成測試進行分類,我只想在開始生產之前能夠證明爲什麼我有信心使用NInject工作。)
假設我有這樣的:
private static void RegisterDatabaseConnections(IBindingRoot kernel)
{
string connectionString = ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString;
kernel.Bind<IProvideDbConnections>()
.To<Connector>()
.WhenInjectedInto<ActivityStore>()
.WithConstructorArgument("connectionString", connectionString);
kernel.Bind<IProvideDbConnections>()
.To<Connector>()
.WhenInjectedInto<CrConnector>()
.WithConstructorArgument("connectionString", connectionString);
kernel.Bind<IProvideDbConnections>()
.To<CrConnector>()
...
}
某處,我有:
public class Writer
{
public Writer(IProvideDBConnections connector)
{
Connector = connector;
}
private IProvideDBConnections Connector { get; set; }
....
}
我想編寫一個像MSTest的
[TestMethod]
public void TestThatWriterCrConnectorContainsConnector()
{
...
}
這樣我可以驗證我寫RegisterDatabaseConnections
給我什麼我期望的。我很難開始使用這個路徑,因爲我不知道要訪問內核來設置任何測試。在應用程序中啓動內核的代碼是靜態私有方法的集合,對我來說有點神祕,而且我沒有看到我會如何在測試環境中執行此操作。任何幫助?