Groovy Java class 的 Spock 测试 - 如何模拟 Clob

Groovy Spock test for Java class - how to mock a Clob

我正在使用 Groovy 的 Spock 框架为 Java class 编写单元测试,从数据库获取 Clob,从该 Clob 检索 InputStream(使用 java.sql.Clob.getAsciiStream() 方法),然后将该 InputStream 传递给 ObjectMapper.readValue() 方法(来自 Jackson Databind 库)。关于如何嘲笑这种行为的任何想法?我见过一个 java 库,它有一个 MockClob class,但我想用 Spock 来做这个。 代码是这样的:

InputStream inputStream = database.getClob().getAsciiStream();
com.fasterxml.jackson.databind.ObjectMapper objectMapper = new ObjectMapper();
objectMapper.readValue(inputStream);

我通过创建特定于数据库的 Clob 实现的实例找到了解决方法。 class 是用于 ibm-db2 数据库的 DB2ConnectionlessClob。