使用 MYSQL DB,使用 HSQLDB 进行单元测试 = 问题

发布于 2024-09-15 07:40:31 字数 195 浏览 12 评论 0原文

我最近使用关键字 RLIKE 修改了 MYSQL 查询,但是当我运行使用 HSQLDB 来模拟数据库的单元测试时,它会抛出未知的 SQL 令牌异常。

为了解决这个问题,我目前已经注释掉了这些测试,但希望找到解决方法,以便我可以实际测试我的代码。

我的 google-fu 未能找到解决方案,因为 HSQLDB 文档似乎缺乏,任何帮助将不胜感激。

I recently modified a MYSQL query using the keyword RLIKE however when I ran the unit test which uses HSQLDB in order to mock a database it throws an unknown SQL token exception.

In order to resolve this currently I have commented out these tests, but would like to find a work around so I can actually test my code.

My google-fu failed to result in a solution as HSQLDB documentation seems lacking, any help would be appreciated.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

找回味觉 2024-09-22 07:40:31

我认为这个故事的寓意是:使用与您打算部署的相同的软件堆栈来运行测试。

如果您在不同的环境中进行测试,您的测试可能会通过,但您的应用程序在生产中会失败 - 这很糟糕。

I think the moral of this story is: Run your tests with the same software stack as you intend to deploy.

If you test in a different environment, your tests might pass but your app fail in production - this is bad.

日裸衫吸 2024-09-22 07:40:31

RLIKE 是一个非标准运算符,HSQL 不支持它。如果您想继续使用 HSQL 进行测试,则必须使用 LIKE 语句或其他标准方法重写查询。或者,您可以使用例如 dbunit 来模拟数据库交互。

RLIKE is a non-standard operator and HSQL does not support it. If you want to continue your testing with HSQL, you will have to rewrite your query using LIKE statements or some other standard method. Alternatively, you could mock the database interaction using e.g. dbunit.

夜血缘 2024-09-22 07:40:31

HSQLDB 2.0 中的等效函数是

REGEXP_MATCHES ( , )

,用法是

SELECT ... WHERE REGEXP_MATCHES( mystring, regexpr)

最新的 Hibernate 3.5.5 支持 HSLQDB 2.0

The equivalent in HSQLDB 2.0 is the function

REGEXP_MATCHES ( , )

and the usage is

SELECT ... WHERE REGEXP_MATCHES( mystring, regexpr)

The latest Hibernate 3.5.5 supports HSLQDB 2.0

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文