第 9 章 六边形架构 – 解耦外部系统

我们已经学会了如何使用安排、行动和断言模板编写测试。我们还学习了一些软件设计原则,称为 SOLID 原则,这些原则帮助我们分解软件为更小的组件。最后,我们学习了测试替身如何替代协作组件,使 FIRST 单元测试更容易编写。在本章中,我们将所有这些技术结合到一个强大的设计方法中,称为六边形架构。

使用这种方法,我们将受益于将更多的应用程序逻辑置于单元测试之下,并减少所需的集成和端到端测试的数量。我们将构建一种自然的弹性,以应对应用程序外部的变化。通过减少代码需要更改的地方,简化开发任务,如更换数据库供应商。我们还将能够跨更大的单元进行单元测试,将一些在其他方法中需要端到端测试的测试纳入单元测试中。

在本章中,我们将涵盖以下主要主题:

  • 为什么外部系统难以处理

  • 依赖倒置来救援

  • 抽象出外部系统

  • 编写领域代码

  • 用测试替身替代外部系统

  • 单元测试更大的单元

  • Wordz——抽象数据库