首页 > 解决方案 > Java 类的 Groovy Spock 测试 - 如何模拟 Clob

问题描述

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

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

标签: javaunit-testinggroovymockingspock

解决方案


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


推荐阅读