Dependency injection 六边形应用程序自动测试中的组件根

Dependency injection 六边形应用程序自动测试中的组件根,dependency-injection,cucumber,bdd,hexagonal-architecture,compositionroot,Dependency Injection,Cucumber,Bdd,Hexagonal Architecture,Compositionroot,我正在用Specflow(C#cumber)开发一个采用BDD方法的六边形应用程序 我想实现自动化场景系统测试,在内部六边形的端口上运行core和注入测试double,而不是在生产适配器上 我还使用了复合根模式,这意味着核心依赖关系是在核心之外解决的:这对我来说已经有味道了(解决核心对适配器外部的依赖关系是正确的,但是核心的内部依赖关系呢?) 通常测试类通过注入testdouble来解决依赖关系,但现在它们也必须能够组装核心。因此,现在我们在解决核心的依赖关系时没有一点真实性,因为测试必须复制合

我正在用Specflow(C#cumber)开发一个采用BDD方法的六边形应用程序

我想实现自动化场景系统测试,在内部六边形的端口上运行core和注入测试double,而不是在生产适配器上

我还使用了复合根模式,这意味着核心依赖关系是在核心之外解决的:这对我来说已经有味道了(解决核心对适配器外部的依赖关系是正确的,但是核心的内部依赖关系呢?)

通常测试类通过注入testdouble来解决依赖关系,但现在它们也必须能够组装核心。因此,现在我们在解决核心的依赖关系时没有一点真实性,因为测试必须复制合成根,如果生产合成根替换核心的内部服务修改和破坏其行为,则自动测试保持绿色,导致测试组合根目录仍然注入服务的旧实现

这个问题的正确解决方案是什么? 谢谢

看看《清洁建筑》一书的第26章(“主要组成部分”)- 《软件结构和设计的工匠指南》,罗伯特·C·马丁著


主组件依赖于应用程序的所有其他组件,它是应用程序的入口点,它就是合成根所在的位置。它创建整个应用程序,并以特定配置运行它。每种配置都有一个Main。

本文可能会帮助您:谢谢,它确实有帮助!