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

相关推荐

  • 公众号智能客服机器人怎么设置?智能客服机器人自动回复

    在数字化转型的深水区,企业客服系统正经历从“被动应答”到“主动智能”的质变,构建基于大模型与私有知识库的公众号智能客服机器人,已成为降低企业运营成本、提升用户留存率及优化服务体验的核心战略,单纯依赖传统关键词匹配或固定话术库的旧式机器人,已无法应对日益复杂的用户咨询场景,真正的智能客服,必须实现语义的精准理解……

    2026年4月24日
    02702
  • 佳能m5021更换黑色套鼓后为何打印仍有黑道?

    当您满怀期待地为京瓷M5021CDN更换了全新的黑色套鼓,却发现打印件上恼人的黑道依然存在时,这确实令人沮丧,这种情况表明,问题根源可能并非仅仅是套鼓本身,而是涉及一个更复杂的系统,打印机是一个精密协作的机械与电子系统,任何一个环节的失灵都可能导致最终的输出问题,要彻底解决黑道问题,我们需要进行系统性的排查,初……

    2025年10月29日
    05650
    • 服务器间歇性无响应是什么原因?如何排查解决?

      根源分析、排查逻辑与解决方案服务器间歇性无响应是IT运维中常见的复杂问题,指服务器在特定场景下(如高并发时段、特定操作触发时)出现短暂无响应、延迟或服务中断,而非持续性的宕机,这类问题对业务连续性、用户体验和系统稳定性构成直接威胁,需结合多维度因素深入排查与解决,常见原因分析:从硬件到软件的多维溯源服务器间歇性……

      2026年1月10日
      020
  • 解决flask跨域问题

    1.解决flask跨域问题方法介绍: pip install flask-cors from flask_cors import CORS CORS(app, resources=…

    2021年12月18日
    01.3K0
  • asp.net账户存在异常?揭秘账户安全与维护之道!

    ASP.NET账户:构建安全、可扩展的身份认证与授权体系在当今数字化应用生态中,用户账户系统是守护业务核心资产的第一道防线,ASP.NET,作为微软成熟的Web开发技术栈,提供了一套强大且灵活的身份认证与授权框架,使开发者能够构建符合企业级安全标准的账户管理体系,深入理解并正确实施这套机制,是保障应用安全性与用……

    2026年2月6日
    02320

发表回复

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