基于内存数据库的单元测试

背景:

当我们在进行单元测试时,对于关系型数据库(例如mysql)和非关系型数据库(例如redis)的处理,有的小伙伴通过mock的方式制作出假的数据进行测试,有的小伙伴会连到开发环境操作数据库。而连到开发环境,会受到很多限制,脏数据,其他人也在操作或者你只能通过vpn才能连通,而且测试时可能需要灌大量数据,测完后再删除这些大量数据,很是麻烦。

简介:

可以通过内存数据库来帮助我们解决上面的问题,

  • H2 数据库是一个不错的选择,它可以随着程序启动去创建数据表和数据,随着程序关闭而销毁,非常方便,可以作为单元测试数据库的替代品;
  • embedded-redis 是用java写的用来模拟真实redis环境的缓存仓库##

配置:

pom.xml


    com.h2database
    h2
    test



    com.github.kstyrc
    embedded-redis
    0.6
    test

yml

spring:
  datasource:
    schema: classpath:db/schema.sql
    driver-class-name: org.h2.Driver
    jdbc-url: jdbc:h2:mem:test
    username:
    password:
    initialization-mode: always

  redis:
    database: 0
    host: localhost
    port: 6379
    password:
mybatis:
  configuration:
    map-underscore-to-camel-case: true

在db/下存放初始化数据库表和数据的文件


https://github.com/youngsterking/junit

你可能感兴趣的:(基于内存数据库的单元测试)