栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何在不遇到NoSuchTableException的情况下使用具有普通JDBC和HSQLDB的DBUnit进行测试?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何在不遇到NoSuchTableException的情况下使用具有普通JDBC和HSQLDB的DBUnit进行测试?

dbUnit不创建表。XML文件中提供的有限信息也无法解决。我相信可以创建休眠表。

这是我停止使用内存数据库,而是让DBA为每个开发人员提供自己的数据库的原因之一。然后,每个开发人员都使用相同的脚本来使数据库保持最新状态,这些脚本随后将实时运行。这增加了少量的开销(所有开发人员都需要保持其数据库为最新状态),但是这意味着您无需为每次运行而构建数据库,并且可以确保查询在测试中实时运行。

第二个原因是速度。我发现在内存数据库中创建内存比简单地连接到现有数据库要花费更长的时间。

第三个原因是拆卸是无损的(启动擦除数据库)。这意味着我可以在数据库上运行被测SQL,以帮助弄清测试失败的原因。

更新日期:20171115

从那以后,我转向使用 JUnit规则来启动数据库服务器的真实实例,并使用诸如FlywayDB之类的东西来构建数据库(并使用与测试中相同的脚本,由应用程序负责构建数据库)。它比使用预建数据库要慢得多。但是,使用定义明确的微服务(从而减少需要测试的功能)并且非常严格地限制哪些测试可以获取数据库,您可以迁移此类问题并获得始终与实时匹配的本地数据库的优势。

确实,这意味着测试撕毁总是具有破坏性的,但是可以通过放置适当的断点来解决问题。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/386942.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号