栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Mockito不能mock final类的解决办法

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Mockito不能mock final类的解决办法

Mockito是很常用的测试工具,使用过程中可能会遇到下面的问题:

Mockito cannot mock/spy because : - final class

问题重现:

引入该依赖到项目的maven配置如下:


  org.mockito
  mockito-core
  3.3.3

测试代码如下:

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依赖如下:


  org.mockito
  mockito-inline
  3.3.3

重跑测试,问题解决!


欢迎访问南瓜慢说 www.pkslow.com获取更多精彩文章!

多读书,多分享;多写作,多整理。

转载请注明:文章转载自 www.mshxw.com
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号