Test Double 简介
对于一个应用程序或者一个系统而言,很难给你一个纯粹的类进行单元测试。对象之间的依赖往往交织到一起,需要拆成各个单元才能逐个击破,也是单元测试的目的。
需要将这些交织到一起的对象拆开,需要一些工具,例如模拟一些数据、替换一些具有某些特定行为的类等。 网站 xunitpatterns.com 把这些工具称为 Test Double,翻译过来就是”测试替身“。
Martin Fowler 为了让这些概念更容易理解,在他的网站上重新更加具体的定义了它们:
- Dummy 被用来仅仅作为填充参数列表的对象,实际上不会用到它们,对测试结果也没有任何影响。
- Fake 一些假的对象或者组件,测试过程中会被用到。例如内存数据库 h2,假的用于用户鉴权的 Bean,一般只会在测试环境下起作用,不会应用于生产。
- Stubs 为被测试对象提供数据,没有任何行为,往往是测试对象依赖关系的上游。
- Spies 被依赖对象的代理,行为往往由被代理的真实对象提供,代理的目的是为了断言程序运行的正确性。
- Mocks 模拟一个具有特性行为的对象,在测试开始
本文介绍了测试替身的概念,包括 Dummy、Fake、Stub、Spy 和 Mock 的区别。重点讨论了 Mockito 框架在单元测试中的应用,包括如何使用 mock、spy 方法,以及 verify 传入下游参数对象的方法。此外,还讲解了如何修改 mock 对象的行为,使用 spy 实现部分真实行为的模拟,并展示了使用注解简化测试代码的方法。最后提到了 reset mock 的功能,以保持测试的独立性。
订阅专栏 解锁全文
1928

被折叠的 条评论
为什么被折叠?



