简体   繁体   English

在Scala中模拟JDBC连接

[英]Mocking JDBC connection in Scala

I'm trying to test out some Scala code that relies on a JDBC connection to an Oracle database. 我正在尝试测试一些Scala代码,这些代码依赖于与Oracle数据库的JDBC连接。 I would like to setup a mock database and fill it with dummy data to test my code on. 我想设置一个模拟数据库,并用虚拟数据填充它以测试我的代码。 I do not want to run a local sql server and am looking for a test framework that will allow me to mock everything so that my code can run on other systems without having to have a local sql server running. 我不想运行本地sql服务器,并且正在寻找一个测试框架,该框架将允许我模拟所有内容,以便我的代码可以在其他系统上运行而不必运行本地sql服务器。

I've looked into JOOQ (need a local sql connection), Acolyte (requires Scala 2.11 and you have to specify every query to be handled), DBUnit (Java only), ScalatestDB (outdated), but have found nothing that suits my needs. 我研究了JOOQ(需要本地sql连接),Acolyte(需要Scala 2.11,并且您必须指定要处理的每个查询),DBUnit(仅Java),ScalatestDB(已过时),但是没有找到适合我的需求的东西。

Is there an easy way to mock my entire JDBC connection to test my code in Scala? 有没有一种简单的方法可以模拟整个JDBC连接以在Scala中测试代码?

Edit: I ended up running an instance of Derby which turned out to be much easier than handling every type of query with Acolyte. 编辑:我最终运行了一个Derby实例,事实证明它比使用Acolyte处理每种类型的查询要容易得多。

I know that you specifically asked for a test framework, but if you can't find that: 我知道您专门要求一个测试框架,但是如果找不到:

HyperSQL ( http://hsqldb.org ) is a pure Java database which can run in-memory inside of your Java/Scala JVM when running tests. HyperSQL( http://hsqldb.org )是一个纯Java数据库,可以在运行测试时在Java / Scala JVM的内存中运行。 I have used it with great success for something like your use case. 我已经成功地将它用于您的用例。

Would not work if there are Oracle-specific features used in the code base you are testing though. 但是,如果要测试的代码库中使用了特定于Oracle的功能,则将无法使用。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM