我正在尝试单元测试依赖注入。显然,这些东西将通过良好的功能测试或QA进行测试,但我认为可以(并且更好)更快地进行测试。问题是,我们的一些构造函数将执行某些功能,例如在数据库或文件系统中查找配置值,有时会注入依赖项。然后我们注册的一些单身人士会做同样的事情。
我们的代码仅使用构造函数注入,而不是方法或属性注入。这让我觉得我们可以通过遍历Autofac选择的依赖项和构造函数树来验证类型是否可以构造,但实际上从不构造类型。
这实质上是我的问题。有没有人在这里劫持Autofac的激活码以实际上激活类型,但只是验证它可以?
答案 0 :(得分:2)
我们的一些构造函数将执行某些功能,例如在数据库或文件系统中查找配置值,有时会注入依赖项。
这是你问题的根源。如清楚here所述,注射构造函数应该简单。任何初始化都应该在构建图形之后或之前完成。特别是查找配置值是类不应该关注的。组合根应该加载这些值并将它们注入需要它们的类中。
在将配置值加载到类之后,将更容易测试此类。