Spring - 如何在集成测试中将图像插入数据库

Spring - How to insert images in db in integration tests

我的文件夹结构与此类似:

main
  |--
test
  |-- java
      |-- com.my.app
          |-- unit
          |-- integration
  |-- resources
      |-- sql
          |-- // some folder with sql files

integration 中,我有几个 classes 的测试如下所示:

@Test
@Sql(value = "/sql/test_data.sql")
public void test() {...}

到目前为止,还不错。 但是现在,我添加了一个 table,它有一个 blob 字段,用于存储图像,在我的应用程序中,我将该图像(使用转换器)转换为 base64 和 return那个base64字符串。

我可以对该转换器进行单元测试,但现在我想测试使用该转换器的 class,并且我需要在 h2 数据库中插入一些图像。

我该怎么做?我不是关于语法,我是在问将图像放在哪里?在 test/resources 里面?如何在 test/resources/sql?

中使用 sql 文件中的图像

我找到了解决方案 :) 我创建了一个 test/resources/images 文件夹,并在 test/resources/sql/test_data.sql:

INSERT INTO table (id, encoded64px) VALUES (1, FILE_READ('classpath:images/image-64px.jpg'));

此外,请确保您拥有图像的权限。