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

标签 java mysql spring junit base64

我的文件夹结构与这个类似:

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

integration 中,我有几个带有如下测试的类:

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

到目前为止,还不错。 但是现在,我添加了一个包含 blob 字段的表,用于存储图像,在我的应用程序中,我将该图像(使用转换器)转换为 base64 并返回base64 字符串。

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

我该怎么做?我不是关于语法,我是在问将图像放在哪里?内部测试/资源?如何使用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'));

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

关于java - Spring - 如何在集成测试中将图像插入数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39184519/

相关文章:

java - 如果没有键盘输入如何生成随机数

MYSQL 将来自两个不同表的两个不同列连接为单个列

mysql - 如何确定字段/列是否受 UPDATE 语句影响

java - 无法从 JAR 文件中读取 TLD "META-INF/c.tld"

java - SPRING 问题 创建名为 'webSecurityConfig' : Unsatisfied dependency 的 bean 时出错

java - 无法发现这段代码的问题

java - Android - 多线程TCP连接

java - 如何使状态对 "session"中的所有 bean 可用?

mysql - 无法添加外键MySQL

java - 从 Spring Controller 中删除重复项