记录真实的 JDBC 连接并生成 Jooq 模拟文件
Posted
技术标签:
【中文标题】记录真实的 JDBC 连接并生成 Jooq 模拟文件【英文标题】:Recording real JDBC connection and producing Jooq mocking file 【发布时间】:2021-05-24 11:54:25 【问题描述】:https://www.jooq.org/javadoc/3.1.x/org/jooq/tools/jdbc/MockFileDatabase.html
我需要手动编写这个模拟文件吗?
我需要模拟一系列查询和结果,并且预计会更新,所以我不想经常修复它。
我正在处理录音连接,因为我找不到任何连接,这并不复杂,但 Jooq 库不提供它对我来说没有意义。
【问题讨论】:
【参考方案1】:我需要手动编写这个模拟文件吗?
没有“最好”的方式来编写这个文件。它就是它,它就是它所做的。
我需要模拟一系列查询和结果,并且预计会更新,所以我不想经常修复它。
正如在这些模拟功能的整个文档中所提到的,如果您真的想要实现这样的模拟数据库(即整个数据库产品),或者如果您没有更好地实现,则应该非常小心继续集成测试您的实际数据库,例如使用testcontainers。从我阅读您的问题的方式来看,您正处于应该转换的地步。
我正在处理录音连接,因为我找不到任何连接,这并不复杂,但 Jooq 库不提供它对我来说没有意义。
录制连接听起来确实很有趣,但它取决于很多事情,包括您的客户端应用程序中导致此确切查询序列的操作的确切顺序。此外,在记录时,可能会连续两次执行相同的查询文本,从而产生不同的结果集。毕竟,记录会针对真实数据库产品进行。而这个MockFileDatabase
与真实数据库产品的模拟相去甚远。
它是用于简单模拟的简单工具。您正在寻找的是实际的集成测试。
回答您的问题:
如果您需要使用这个模拟 API,那么您需要手动编写文件。
【讨论】:
以上是关于记录真实的 JDBC 连接并生成 Jooq 模拟文件的主要内容,如果未能解决你的问题,请参考以下文章
在 try-with-resources 块之外流式传输 JOOQ 结果时,我是不是会冒 JDBC 连接泄漏的风险?
使用 Gradle Kotlin DSL 配置 Jooq 时如何修复“未解析的引用:jdbc”