使用H2内存数据库执行单元测试

单元测试目的

  • 发现代码中的错误:在编写代码时,程序员可能会引入各种逻辑错误、边界条件处理不当等问题。通过编写单元测试,可以模拟各种输入场景,对方法的输出结果进行验证,从而在开发早期发现并修复这些错误,避免错误在后续的开发过程中被放大,降低修复成本。
  • 快速反馈:单元测试可以在开发过程中提供快速的反馈。当程序员完成一个方法或对现有代码进行修改后,立即运行单元测试,就能迅速知道代码是否正常工作,而不需要进行复杂的集成测试或部署到生产环境中进行验证。

引入依赖

<dependency>
    <groupId>com.h2database</groupId>
    <artifactId>h2</artifactId>
    <version>1.4.200</version>
    <scope>test</scope>
</dependency>

注意:此处<scope>test依赖无法被继承到子模块,所以需要每个模块都引入h2依赖。

新增application-test.yml在测试的 classpach 下

spring:
  datasource:
    url: jdbc:h2:mem:nfturbo
    username: sa
    password: password
    driver-class-name: org.h2.Driver
    h2-console-setting: INIT=RUNSCRIPT FROM 'classpath:schema.sql'

image-20250306113724277

此处的'classpath:schema.sql'对应项目中使用的建表语句文件

image-20250306113833370

单元测试代码


@ActiveProfiles("test")
public class MybatisTest extends BaseTest {

    @Autowired
    private UserMapper userMapper;

    @Test
    public void testMybatis() {
        userMapper.findById(1L);
    }
}

相关文章

开始在上面输入您的搜索词,然后按回车进行搜索。按ESC取消。

返回顶部