第 8 章 测试替身 – 存根和模拟

在本章中,我们将解决一个常见的测试挑战。如何测试一个依赖于另一个对象的对象?如果那个协作者难以用测试数据设置,我们该怎么办?有几种技术可以帮助我们解决这个问题,它们建立在我们之前学习的 SOLID 原则之上。我们可以使用依赖注入的概念来使我们能够用专门编写的对象替换协作者,以帮助我们编写测试。

这些新对象被称为测试替身,我们将在本章中学习两种重要的测试替身。我们将学习何时应用每种测试替身,然后学习在 Java 中创建它们的两种方法——既通过自己编写代码,也通过使用流行的库 Mockito

到本章结束时,我们将掌握一些技术,使我们能够为那些难以或无法与真实协作者一起测试的对象编写测试。这使我们能够在复杂系统中使用 TDD

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

  • 测试协作者的问题

  • 测试替身的目的

  • 使用存根获取预定义结果

  • 使用模拟来验证交互

  • 理解何时使用测试替身是合适的

  • 使用 Mockito——一个流行的模拟库

  • 使用存根驱动错误处理代码

  • 在 Wordz 中测试错误条件