我就是奇迹

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

只测试 Mapper 层(比如 MyBatis、MyBatis-Plus、JPA Repository)可以使用轻量级的注解配置,比如:

 


 

 

✅ 用 

@MybatisTest

(推荐)

 

 

适用于只测 Mapper(不启动 Web 层、Service 层)

@MybatisTest
@AutoConfigureTestDatabase(replace = AutoConfigureTestDatabase.Replace.NONE) // 如果你用的是本地真实数据库而不是 H2
public class UserMapperTest {

    @Autowired
    private UserMapper userMapper;

    @Test
    public void testSelectUserById() {
        User user = userMapper.selectUserById(8911L);
        System.out.println(user);
        assertThat(user).isNotNull();
        assertThat(user.getName()).isEqualTo("张三");
    }
}

 

 


 

 

✅ 注解说明

 

注解

作用

@MybatisTest

只加载和 MyBatis 有关的 Bean(包括 Mapper、MyBatis 配置等),不加载 Controller、Service

@AutoConfigureTestDatabase

默认会用内存数据库(如 H2),你如果不想替换就加 Replace.NONE

@Autowired UserMapper

直接注入你想测试的 Mapper

 

 


 

 

📝 注意点

 

 

  1. 如果你不想用内存数据库(H2),记得加:

 

@AutoConfigureTestDatabase(replace = AutoConfigureTestDatabase.Replace.NONE)

 

  1. 否则 Spring 会默认替你换掉为 H2(导致连接失败或者数据不一致)

  2. 你需要在 application.yml 或测试配置中配置好数据库连接信息(用于测试环境)

 

 


 

 

❗如果你用的是 JPA Repository 而不是 MyBatis:

 

 

那用 @DataJpaTest 替代 @MybatisTest

posted on 2025-04-10 15:10  我就是奇迹  阅读(31)  评论(0)    收藏  举报