总结
在本章中,我们探讨了如何解决测试有问题的协作者的问题。我们学习了如何使用称为测试替身的替代对象来替代协作者。我们已经了解到,这使我们可以简单地控制在测试代码中这些协作者的行为。
两种测试替身对我们特别有用:存根和模拟对象。存根返回数据。模拟对象验证方法是否被调用。我们已经学会了如何使用 Mockito
库为我们创建存根和模拟对象。
我们使用 AssertJ
来验证 SUT 在各种测试替身条件下的行为是否正确。我们已经学会了如何测试抛出异常的错误条件。
这些技术扩展了我们编写测试的工具包。
在下一章中,我们将介绍一种非常有用的系统设计技术,该技术使我们能够将大部分代码置于 FIRST 单元测试之下,同时避免测试与无法控制的外部系统的协作问题。