在Scala中模拟JDBC连接

在Scala中模拟JDBC连接,scala,unit-testing,jdbc,Scala,Unit Testing,Jdbc,我试图测试一些依赖于到Oracle数据库的JDBC连接的Scala代码。我想建立一个模拟数据库,并用虚拟数据填充它来测试我的代码。我不想运行本地sql server,我正在寻找一个测试框架,它允许我模拟所有东西,这样我的代码就可以在其他系统上运行,而不必运行本地sql server 我研究了JOOQ(需要本地sql连接)、Acolyte(需要Scala 2.11,并且必须指定要处理的每个查询)、DBUnit(仅限Java)、ScalatestDB(过时),但没有找到任何适合我需要的 有没有一种简

我试图测试一些依赖于到Oracle数据库的JDBC连接的Scala代码。我想建立一个模拟数据库,并用虚拟数据填充它来测试我的代码。我不想运行本地sql server,我正在寻找一个测试框架,它允许我模拟所有东西,这样我的代码就可以在其他系统上运行,而不必运行本地sql server

我研究了JOOQ(需要本地sql连接)、Acolyte(需要Scala 2.11,并且必须指定要处理的每个查询)、DBUnit(仅限Java)、ScalatestDB(过时),但没有找到任何适合我需要的

有没有一种简单的方法来模拟我的整个JDBC连接,以便在Scala中测试我的代码


编辑:我最后运行了一个Derby实例,结果证明它比用Acolyte处理每种类型的查询都要简单得多。

我知道您特别要求一个测试框架,但如果您找不到:

HyperSQL()是一个纯Java数据库,在运行测试时可以在Java/Scala JVM的内存中运行。我已经将它成功地用于类似于您的用例的东西


如果您正在测试的代码库中使用了Oracle特定的功能,则不起作用。

我不认为测试JDBC连接有什么意义,我宁愿将存储库作为一个整体来模拟,或者我会使用一个最小但真实的DB和一个真实的JDBC连接来测试查询,并且每个连接只能处理一个查询/语句(例如,
.withQueryResult(…)
),或者只能处理一些您感兴趣的查询/语句(使用模式匹配)。