背景:
当我们在进行单元测试时,对于关系型数据库(例如mysql)和非关系型数据库(例如redis)的处理,有的小伙伴通过mock的方式制作出假的数据进行测试,有的小伙伴会连到开发环境操作数据库。而连到开发环境,会受到很多限制,脏数据,其他人也在操作或者你只能通过vpn才能连通,而且测试时可能需要灌大量数据,测完后再删除这些大量数据,很是麻烦。
简介:
可以通过内存数据库来帮助我们解决上面的问题,
- H2 数据库是一个不错的选择,它可以随着程序启动去创建数据表和数据,随着程序关闭而销毁,非常方便,可以作为单元测试数据库的替代品;
- embedded-redis 是用java写的用来模拟真实redis环境的缓存仓库##
配置:
pom.xml
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.github.kstyrc</groupId>
<artifactId>embedded-redis</artifactId>
<version>0.6</version>
<scope>test</scope>
</dependency>
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