在进行本地单元测试的时候,有时候需要对数据库进行操作,但数据库环境又很难维护,即使费老大力气完成了本地数据库数据的构造,由于一些其他的变动或者别人的改动也会导致testCase跑不通,这就造成了辛辛苦苦构造数据库写的testCase就一次有效,这对于之后的回归测试以及代码维护都是一个麻烦事,因此经研究和试用后发现运用Spring内存数据库(Embedded database)可以很方便的解决这种麻烦。

Embedded database 是Spring提供的一套虚拟db,利用它可以很方便的进行单元测试

1,gradle中引入如下依赖

testCompile 'com.h2database:h2:1.4.192'

2,代码方式创建 embedded database(init.sql 是创建数据库的脚本,新增的表记得添加脚本,@Bean 中name 的值是Spring.xml中配置的DataSource的bean id)

运用Spring内存数据库(Embedded database)构造单元测试

3,testCase用到DB的时候只需要Import就可,如下:

运用Spring内存数据库(Embedded database)构造单元测试

4,同时写Mock测试的时候,要区分@Mock和@MockBean的区别

@Mock是mock当前测试类的数据,但是不会随测试context上下文传递下去

而@MockBean会随context传递下去,大部分情况我们是需要mock的对象随context传递下去的

相关文章:

  • 2021-07-16
  • 2022-02-16
  • 2021-10-18
  • 2022-12-23
  • 2021-11-06
  • 2022-12-23
  • 2021-09-08
  • 2021-11-11
猜你喜欢
  • 2022-12-23
  • 2021-06-07
  • 2022-01-04
  • 2022-12-23
  • 2021-11-29
  • 2022-12-23
  • 2022-01-07
相关资源
相似解决方案