Mockito不能mock final类的解决办法
Mockito
是很常用的测试工具,使用过程中可能会遇到下面的问题:
Mockito cannot mock/spy because : - final class
问题重现:
引入该依赖到项目的maven配置如下:
<dependency> <groupId>org.mockito</groupId> <artifactId>mockito-core</artifactId> <version>3.3.3</version> </dependency>
测试代码如下:
package com.pkslow.basic; import org.junit.Assert; import org.junit.Test; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; public class MockitoTest { public static final class FinalPumpkin { public String getName() { return "pkslow.com"; } } @Test public void test() { FinalPumpkin pumpkin = mock(FinalPumpkin.class); when(pumpkin.getName()).thenReturn("www.pkslow.com"); Assert.assertEquals("www.pkslow.com", pumpkin.getName()); } }
报错信息如下:
org.mockito.exceptions.base.MockitoException: Cannot mock/spy class com.pkslow.basic.MockitoTest$FinalPumpkin Mockito cannot mock/spy because : - final class
这是因为低版本的Mockito
是不能mock
final
类的。
解决方案:
改变Mockito
的版本,修改maven依赖如下:
<dependency> <groupId>org.mockito</groupId> <artifactId>mockito-inline</artifactId> <version>3.3.3</version> </dependency>
重跑测试,问题解决!
欢迎访问南瓜慢说 www.pkslow.com获取更多精彩文章!
欢迎关注微信公众号<南瓜慢说>,将持续为你更新...
多读书,多分享;多写作,多整理。
相关推荐
snowphy 2020-08-19
84224552 2020-05-31
80487608 2014-07-04
zhengzf0 2019-05-29
lzjqcc 2019-05-29
hwm 2020-06-14
free0day 2020-06-14
beibeijia 2020-06-07
droidpioneer的IT 2020-05-20
beibeijia 2020-05-16
Teamomc 2020-02-21
jxiao000 2020-02-20
MrHaoNan 2020-02-20
nimeijian 2020-02-15
Safari浏览器 2020-01-12
maicowxp 2019-12-29
TimeSky 2020-01-11
aNian 2019-12-26