我正在集成DBUnit来对我的应用程序进行单元测试,然后我遇到了H2内存数据库不支持在SQL脚本中指定的PLSQL函数的问题。
那么,有人可以建议我可以与 DBUnit 集成并可以执行 Oracle PL/SQL 函数的内存数据库(H2 的替代品)吗?
正如第二条评论所提到的,在 PL/SQL 过程、函数和其他功能方面,除了 Oracle DB 之外,没有什么可以做 Oracle 所做的事情。
因此,要使用 DBUnit,解决方案将是物理 Oracle DB,其作用就像 H2 内存数据库。这让生活变得简单,而且效果很好。
我知道这篇文章已经有 7 年历史了,但如果你像我一样现在偶然发现这个问题,请使用 Testcontainers 来帮助自己。这是一种为动态测试创建 Docker 容器的方法。他们还支持 OracleFree 和 OracleXE 模块。
https://testcontainers.com/getting-started/
回避[云开发]挑战的一种方法是依赖内存数据库、嵌入式服务、模拟和其他生产依赖项的虚假副本。然而,这些方法带来了自己的问题(例如,内存服务可能不具备生产服务的所有功能,并且行为略有不同)。