2

我正在用Specflow(C#cucumber)开发BDD方法的六角形应用。六角形应用自动化测试中的组成根

我想执行自动化场景系统测试,运行核心并在内部六角形的端口上注入测试双代替生产适配器。

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

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

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

+2

本文可能会帮助您:http://www.dotnetcurry.com/patterns-practices/1337/automated-testing-using-composition-root-csharp –

+0

谢谢,它确实有帮助! – Rob80

回答

0

请看Robert C. Martin着的“Clean Architecture - Craftman的软件结构和设计指南”一书的第26章(“主要组件”)。

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