在端口和适配器(六边形)架构中,您有:
DrivingAdapter -> InboundPort <- [ domain ] -> OutboundPort <- DrivenAdapter
注意:当然端口是域的一部分
一个具体的例子可能是:
WebController -> OrderServicePort [ order domain ] -> OrderRepositoryPort <- MongoDbOrderRepositoryAdapter
因此,端口和适配器架构背后的想法是,您可以将域与应用程序边缘的具体适配器分开测试。
我不明白左侧的接口端口对可测试性有何用处?
WebController 没有重要的逻辑,因此本身不会成为测试目标,并将作为端到端测试的一部分进行测试。所以我不会模拟 OrderServicePort,因为它通常是我的测试对象。
当然,InboundPorts 的价值在于它们只公开了实现它的具体域类的简化视图。
但是我看不出使用 InboundPorts 增加的可测试性从何而来。
同意?