六角形应用自动化测试中的组成根

时间:2017-05-05 16:04:52

标签: dependency-injection cucumber bdd hexagonal-architecture compositionroot

我正在使用Specflow(C#cucumber)开发一种带有BDD方法的六边形应用程序。

我想实现运行核心的自动化场景系统测试,并在内六角的端口而不是生产适配器上注入test double。

我也在使用组合根模式,这意味着核心依赖关系在核心之外被解析:这已经闻到了我的意思(解决核心对注入适配器的外六边形的依赖性是正确的,但是核心的内部依赖性怎么样?)。

通常测试类以他们的方式解决依赖关系,注入test double,但现在他们必须能够组装核心。所以现在我们在解决核心的依赖关系方面没有一点事实,因为测试必须复制组合根,如果生产组合根替换核心的内部服务修改并破坏其行为,则自动化测试保持绿色,导致测试组合root仍然注入旧服务的实现。

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

1 个答案:

答案 0 :(得分:0)

看看“清洁建筑”一书的第26章(“主要组成部分”)  “Craftman的软件结构和设计指南”,作者:Robert C. Martin。

主要组件取决于应用程序的所有其他组件,它是应用程序的入口点,它位于组合根所在的位置。它创建整个应用程序并使用特定配置运行它。每个配置都有一个Main。