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
给我什么我期望的。我很难开始使用这个路径,因为我不知道要访问内核来设置任何测试。在应用程序中启动内核的代码是静态私有方法的集合,对我来说有点神秘,而且我没有看到我会如何在测试环境中执行此操作。任何帮助?