当前使用版本(必填,否则不予处理)

mybatis-plus版本 com.baomidou mybatis-plus-boot-starter 3.3.2 Mockito版本 org.mockito mockito-core 2.23.4 test

该问题是如何引起的?(确定最新版也有问题再提!!!)

在使用Mockito进行分层单元测试时,mapper是mock出来的,且已经设置了当调用 mapper.updateById()方法时返回 1 ,但是运行时这个方法返回回的是 0,导致测试失败

重现步骤(如果有就写完整)

报错信息

Comment From: DamonWz

附加:updateById() 继承自 BaseMapper

Comment From: miemieYaho

有复现demo?

Comment From: DamonWz

有复现demo?

您好!抱歉现在回复。 demo我放在 https://github.com/DamonWz/mp-mockito-demo 麻烦您了!谢谢

Comment From: miemieYaho

你这mock的并不是userService里面的userMapper吧

Comment From: DamonWz

我打印了两个mapper的hashcode,是一样的

------------------ 原始邮件 ------------------ 发件人: "miemieYaho"<notifications@github.com>; 发送时间: 2020年7月30日(星期四) 下午2:49 收件人: "baomidou/mybatis-plus"<mybatis-plus@noreply.github.com>; 抄送: "大梦先森"<852614303@qq.com>; "Comment"<comment@noreply.github.com>; 主题: Re: [baomidou/mybatis-plus] 使用mybatis-plus和mockito时遇到的一个问题 (#2781)

你这mock的并不是userService里面的userMapper吧

— You are receiving this because you commented. Reply to this email directly, view it on GitHub, or unsubscribe.

Comment From: DamonWz

还有一个点是如果调用的是自个写的mapper方法时,when(userMapper.myMethod()).thenReturn(value)是生效的,当调用例如 updateById(),insert()等继承来的方法,即使设置了返回值也不会生效

------------------ 原始邮件 ------------------ 发件人: "baomidou/mybatis-plus" <notifications@github.com>; 发送时间: 2020年7月30日(星期四) 下午2:49 收件人: "baomidou/mybatis-plus"<mybatis-plus@noreply.github.com>; 抄送: "大梦先森"<852614303@qq.com>;"Comment"<comment@noreply.github.com>; 主题: Re: [baomidou/mybatis-plus] 使用mybatis-plus和mockito时遇到的一个问题 (#2781)

你这mock的并不是userService里面的userMapper吧

— You are receiving this because you commented. Reply to this email directly, view it on GitHub, or unsubscribe.

Comment From: yuxiaobin

    when(userMapper.insert(userEntity)).thenReturn(1);

改成: when(userMapper.insert(any(UserEntity.class))).thenReturn(1);

Comment From: DamonWz

Bingo! 非常感谢您在百忙之中帮我解答问题!谢谢! 这个问题是我对mockito框架不熟悉造成的,惭愧惭愧...我以后会多学习

------------------ 原始邮件 ------------------ 发件人: "baomidou/mybatis-plus" <notifications@github.com>; 发送时间: 2020年7月30日(星期四) 下午3:49 收件人: "baomidou/mybatis-plus"<mybatis-plus@noreply.github.com>; 抄送: "大梦先森"<852614303@qq.com>;"Comment"<comment@noreply.github.com>; 主题: Re: [baomidou/mybatis-plus] 使用mybatis-plus和mockito时遇到的一个问题 (#2781)

 when(userMapper.insert(userEntity)).thenReturn(1);

改成: when(userMapper.insert(any(UserEntity.class))).thenReturn(1);

— You are receiving this because you commented. Reply to this email directly, view it on GitHub, or unsubscribe.