Mockito间谍与模拟:深入理解Mockito.spy()与Mockito.mock()
在单元测试的世界里,Mockito
是一个不可或缺的工具,它让测试变得更加简单和直观。本文将通过实际代码示例,详细探讨Mockito
中的spy()
与mock()
方法,以及它们在测试中的具体应用。
背景知识
在Java单元测试中,我们经常需要模拟对象的行为,以便在不依赖实际实现的情况下测试代码。Mockito
提供了两种主要的方式来创建模拟对象:spy()
和mock()
。
Mockito.mock()
Mockito.mock()
用于创建一个完全的模拟对象。使用此方法创建的对象,其所有方法调用都会返回默认值,或者根据我们的stubbing进行定制。
Mockito.spy()
与mock()
不同,spy()
方法创建的是一个部分模拟的对象。这意味着,除非我们明确地stub了某个方法,否则该方法将调用实际的实现。
示例项目
接下来,我将通过一个简单的计算器类MyCalc
来展示Mockit