4

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

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

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

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

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

4

1 回答 1

1

看看 Robert C. Martin 所著的“Clean Architecture - A Craftman's Guide to Software Structure and Design”一书的第 26 章(“主要组件”)。

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

于 2018-01-17T00:33:17.803 回答