Mockito使用总结

Mockito介绍

Mockito就是一个优秀的用于单元测试的mock框架。在软件开发中提及”mock”,通常理解为模拟对象。所以Mockito就是为了模拟对象,然后进行解耦合测试。
Mockito可以让你用优雅,简洁的接口写出漂亮的单元测试。Mockito可以让单元测试易于可读,产生简洁的校验错误。

类之间是存在相互依赖的

类依赖示意图.PNG

如果我们想对类A进行单元测试,我们会发现它依赖B和C,而B又依赖D。此时如果对A进行测试就必须等B、C、D都开发完后才能测试,A测试正确与否也跟它依赖的类息息相关,但是使用Mockito后就可以剪除依赖,关注于被测试的类本身逻辑,完成测试。

为什么要用Mockito

  • 剪除外部依赖,提升代码质量
  • 团队并行开发,提高开发速度
  • 为无法访问的资源编写测试

集成Mockito的基本步骤

  • 标记被Mock的类或者对象,生成代理对象
  • 通过Mockito API定制代理对象的行为
  • 调用代理对象的方法,获得预先设计的结果

模拟对象的三种方式

>> 使用MockitoAnnotations模拟对象

使用MockitoAnnotations模拟对象.png

>> 使用MockitoJUnitRunner模拟对象

使用MockitoJUnitRunner模拟对象.png

>> 使用MockitoRule模拟对象

使用MockitoRule模拟对象.png

@Spy和@Mock是有区别的

@Spy和@Mock区别.png

验证行为

验证行为.png
Mockito. verify(T mock, VerificationMode mode)
Mockito.times()
Mockito.never()
Mockito.atLeast()
Mockito.atMost()

Stubbing(下桩)

Mockito.when(mockList.get(0)).thenReturn("Hello,China").thenReturn("Hello,YaoWan");
Mockito.when(mockList.get(1)).thenReturn("Hello,World");

参数匹配

参数匹配.png
备注:如果你使用了参数匹配器,那么所有参数都应该使用参数匹配器

JUnit、Mockito、Spring结合使用

JUnit、Mockito、Spring结合使用.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容