Mockito MockBean不能mock MyBatis Mapper解决方法

在使用 MockBean 注解来模拟 MyBatis 接口(interface)的bean(例如 DAO)时遇到了问题,下面介绍一下不能mock MyBatis Mapper解决方法:

Mockito MockBean不能mock MyBatis Mapper解决方法

 

@Mapper
@Repository
public interface OrderDAO {
int insertOrder(@Param(“order“) Order order);
}

想在包含 OrderDAO 类型的字段的 OrderService 中执行集成测试并模拟此映射器。
集成测试用@ springboottest for integration test (webenvironment = springboottestWebEnvironment.RANDOM_PORT)注释并包含以下字段:

@MockBean
Private orderdao;

当运行这样的测试并查看对 OrderDAO 对象的引用是什么时,在集成测试中看到:

com.example.dao.OrderDAO$MockitoMock$1819884459

但在OrderService 类中,该字段是这样的:

com.sun.proxy.$Proxy179 (org.It’s not a good idea.binding.MapperProxy@37d9310e)

因此,对 Mockito.verify 的调用显然不起作用,因为我的模拟尚未注入到我的 OrderService 类中。

解决方案

必须将mapper的bean的名称添加到模拟 bean 注解中:

@MockBean(name = “orderDAO“)
Private orderdao;
以上就是关于“Mockito MockBean不能mock MyBatis Mapper解决方法”的相关解答,酷番云云南知名老牌云服务商,云服务器用户按需选择内存、数据盘、cup等配置大小,弹性灵活扩容,平滑升级。专业技术团队7×24小时服务支持,售后无忧!

高性价比云服务器选购地址:

https://www.kufanyun.com/server/buy.html

图片来源于AI模型,如侵权请联系管理员。作者:路飞,如若转载,请注明出处:https://www.kufanyun.com/ask/1299.html

(0)
上一篇2021年12月9日 15:35
下一篇 2021年12月11日 15:53

相关推荐

  • 佳能8350cdn电机为何转一下就停?维修或更换指南揭秘!

    佳能8350cdn电机故障分析及解决方案佳能8350cdn是一款高性能的彩色激光打印机,但在实际使用过程中,部分用户反映打印机电机转一下就停,给工作和生活带来不便,本文将针对此问题进行分析,并提供相应的解决方案,故障原因分析电机故障佳能8350cdn电机转一下就停,可能是由于电机本身故障导致的,电机是打印机核心……

    2025年11月17日
    0160
  • 阿里云cdn如何设置ip回源?百度教程全解析!

    阿里云CDN IP回源设置百度教程什么是CDN?分发网络)是一种通过在多个地理位置部署缓存服务器,将用户请求的内容分发到最近的服务器,从而提高访问速度和用户体验的技术,阿里云CDN可以帮助您快速、安全地分发网站内容,降低带宽成本,提高网站访问速度,什么是IP回源?IP回源是指将CDN节点请求的数据回传到源站的过……

    2025年11月9日
    080
  • 家用cdn机顶盒真的适用于自家观看需求吗?效果和兼容性如何?

    随着互联网技术的不断发展,CDN(内容分发网络)已经成为了提高网络访问速度和用户体验的重要手段,CDN机顶盒作为一种结合了CDN技术和传统机顶盒功能的设备,越来越受到消费者的关注,CDN机顶盒自己家可以用吗?下面我们来详细探讨一下,CDN机顶盒简介CDN机顶盒是一种集成了CDN技术的数字电视接收设备,它通过CD……

    2025年11月30日
    040
  • 立思辰GB3731CDN墨盒塑料片是干嘛的,安装时要撕掉吗?

    当您为您的立思辰GB3731CDN打印机更换新墨盒时,可能会注意到一个容易被误解的部件——墨盒上那块看似不起眼的塑料片,许多用户会疑惑:这是包装的一部分吗?是需要撕掉的密封条吗?甚至有人可能在尝试安装时因用力过猛而将其损坏,这块小小的塑料片并非可有可无的装饰或包装,它是墨盒与打印机之间进行“沟通”的关键部件,其……

    2025年10月15日
    0260

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注