专注、交流、分享
云计算领域最新资讯

Mockito MockBean不能mock MyBatis Mapper解决方法

在使用 MockBean 注解来模拟 MyBatis 接口(interface)的bean(例如 DAO)时遇到了问题,下面介绍一下不能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

赞(0)
未经允许不得转载:酷番云知识库 » Mockito MockBean不能mock MyBatis Mapper解决方法
  • 日销500+
    基础型虚拟主机

    共享CPU

    共享内存

    2G空间

    共享带宽

    共享IP

    分布式存储

    适合个人博客、个人站长类网站

    ¥9 原价¥28

  • 日销500+
    超值型云主机CVM

    2核CPU

    2G内存

    180G硬盘

    5M带宽

    独立IP

    分布式存储

    适合企业官网、行业门户类网站

    ¥99 原价¥210

  • 日销500+
    通用型云服务器ECS

    4核CPU

    4G内存

    50G硬盘

    20M带宽

    独立IP

    分布式存储

    适合电商、论坛类网站

    ¥254 原价¥322

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

中国领先的企业级云服务提供商

域名注册云服务器