Mockito-Mapper解决方法-MockBean不能mock-MyBatis

教程大全 2026-01-14 17:57:01 浏览

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

@Mapper@Repositorypublic interface ORDERDAO {int insertOrder(@Param(“order“) Order order);}

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

@MockBeanPrivate orderdao;
mockbean

当运行这样的测试并查看对 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小时服务支持,售后无忧!

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

本文版权声明本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请联系本站客服,一经查实,本站将立刻删除。

发表评论

热门推荐