Mock是编程中Unit测试的常态。最开始使用的是easymock,确实很easy,可惜功能不够强大。对于private方法测试无能为力,对于static的工具类也没有办法,于是转向了PowerMockito,很好的解决了我的困扰。
Mock测试的主要做法就是在真实方法调用之前先模拟被测试类关联的外部类,接口的调用实现,对指定的参数,返回虚拟的结果(虚拟的返回值或者异常等),然后调用测试方法,再之后验证模拟的函数调用都有发生。
记录一下我使用powermockito的一些测试用例。
1.基本简单的mock和验证 (被测试的类是JcifsDataTransfer,引用的类包括NtlmPasswordAuthentication和SmbFile),其中NtlmPasswordAuthentication和SmbFile是在被测试类中New的实例,所以需要在Class的annotation中除了@RunWith(PowerMockRunner.class) 也要加入 @preparefortest (JcifsDataTransfer.class)。方法调用都是有返回值的,所以用when.thenReturn来模拟。
注意:New的preparefortest必须是被测试类

本文记录了使用PowerMockito进行单元测试的过程,通过它能够对private方法和static工具类进行模拟,解决传统Mock工具的限制。内容涵盖基本mock设置、静态方法的模拟以及多次调用返回不同值的场景,帮助提升测试覆盖率。
最低0.47元/天 解锁文章
2140

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



