用H2测试SpringBoot数据库的正确方法是什么?

时间:2019-05-26 14:46:12

标签: database unit-testing spring-boot h2 mybatis

我正在尝试通过Mybatis在H2内存数据库中运行Springboot测试。 到目前为止,我已经完成

  1. 在application-test.properties中配置h2 DB
  2. 添加注释
@SpringBootTest, @TestPropertySource (locations = "TEST_APPLICATION_PROPERTIES_LOCATION")
  1. 自动装配dao和serviceImpl bean
  2. 使用
  3. 将seed.sql和purge.sql添加到测试类中
@SqlGroup({
        @Sql(executionPhase = Sql.ExecutionPhase.BEFORE_TEST_METHOD, scripts = "classpath:/database/seed.sql"),
        @Sql(executionPhase = Sql.ExecutionPhase.AFTER_TEST_METHOD, scripts = "classpath:/database/purge.sql") })

尽管采取了上述措施,我仍然有两个问题

  1. 我无法检索使用seed.sql输入的用户。我使用id =“ admin”,pw =“ admin”创建了一个用户,并尝试使用findById(“ admin”)进行检索。但是它总是返回null。

  2. 使用@test调试时无法打开h2 DB。我根本无法使用localhost:8080 / h2-console访问h2(路径是在application-test.properties中显式编写的)

使用h2测试SpringBoot是否还有其他措施?

1 个答案:

答案 0 :(得分:0)

在属性文件中添加spring.h2.console.enabled=true