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'));
此外,请确保您拥有图像的权限。
我的文件夹结构与此类似:
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'));
此外,请确保您拥有图像的权限。