第 9 章 六边形架构 – 解耦外部系统
我们已经学会了如何使用安排、行动和断言模板编写测试。我们还学习了一些软件设计原则,称为 SOLID 原则,这些原则帮助我们分解软件为更小的组件。最后,我们学习了测试替身如何替代协作组件,使 FIRST 单元测试更容易编写。在本章中,我们将所有这些技术结合到一个强大的设计方法中,称为六边形架构。
使用这种方法,我们将受益于将更多的应用程序逻辑置于单元测试之下,并减少所需的集成和端到端测试的数量。我们将构建一种自然的弹性,以应对应用程序外部的变化。通过减少代码需要更改的地方,简化开发任务,如更换数据库供应商。我们还将能够跨更大的单元进行单元测试,将一些在其他方法中需要端到端测试的测试纳入单元测试中。
在本章中,我们将涵盖以下主要主题:
-
为什么外部系统难以处理
-
依赖倒置来救援
-
抽象出外部系统
-
编写领域代码
-
用测试替身替代外部系统
-
单元测试更大的单元
-
Wordz——抽象数据库