总结

在本章中,我们探讨了如何解决测试有问题的协作者的问题。我们学习了如何使用称为测试替身的替代对象来替代协作者。我们已经了解到,这使我们可以简单地控制在测试代码中这些协作者的行为。

两种测试替身对我们特别有用:存根和模拟对象。存根返回数据。模拟对象验证方法是否被调用。我们已经学会了如何使用 Mockito 库为我们创建存根和模拟对象。

我们使用 AssertJ 来验证 SUT 在各种测试替身条件下的行为是否正确。我们已经学会了如何测试抛出异常的错误条件。

这些技术扩展了我们编写测试的工具包。

在下一章中,我们将介绍一种非常有用的系统设计技术,该技术使我们能够将大部分代码置于 FIRST 单元测试之下,同时避免测试与无法控制的外部系统的协作问题。

问题与解答

进一步阅读