我正在使用Specflow(C#cucumber)开发一种带有BDD方法的六边形应用程序。
我想实现运行核心的自动化场景系统测试,并在内六角的端口而不是生产适配器上注入test double。
我也在使用组合根模式,这意味着核心依赖关系在核心之外被解析:这已经闻到了我的意思(解决核心对注入适配器的外六边形的依赖性是正确的,但是核心的内部依赖性怎么样?)。
通常测试类以他们的方式解决依赖关系,注入test double,但现在他们必须能够组装核心。所以现在我们在解决核心的依赖关系方面没有一点事实,因为测试必须复制组合根,如果生产组合根替换核心的内部服务修改并破坏其行为,则自动化测试保持绿色,导致测试组合root仍然注入旧服务的实现。
这个问题的正确解决方案是什么? 感谢
答案 0 :(得分:0)
看看“清洁建筑”一书的第26章(“主要组成部分”) “Craftman的软件结构和设计指南”,作者:Robert C. Martin。
主要组件取决于应用程序的所有其他组件,它是应用程序的入口点,它位于组合根所在的位置。它创建整个应用程序并使用特定配置运行它。每个配置都有一个Main。