是否有一个不适合Javascala的类似dbunit的框架?

是否有一个不适合Javascala的类似dbunit的框架?,第1张

是否有一个不适合Java / scala的类似dbunit的框架

我不知道有什么真正的替代DbUnit的选择,@ Joe提到的工具都没有出现在我眼中:

  • Incanto:与数据库无关
  • SQLUnit:用于测试数据库存储过程的回归和单元测试工具(这与DbUnit无关)
  • Cactus:用于容器内测试的工具(我看不到它对数据库有何帮助)
  • Liquibase:数据库迁移工具(不加载/验证数据)
  • ORMUnit:可以初始化数据库,仅此而已
  • JMock:根本不与DbUnit竞争

话虽如此,我已经在大型和小型项目中成功地多次使用了DbUnit,并且发现它非常有用,尤其是在使用Unitils及其DbUnit模块时。这并不意味着它是完美的并且无法进行改进,但是使用像样的工具(定制或类似Unitils的工具),使用它已经是一种不错的体验。

因此,让我回答您的一些观点:

1)不建议使用最简单的书写和入门格式。他们希望您使用过时的格式。有些甚至需要xml模式。好吧,无所谓了。

DbUnit支持平面或结构化XML,XLS,CSV。您想使用哪种革命性格式?顺便说一句,使用XML时DTD或架构不是必需的。但这给您带来了诸如验证和自动完成之类的好东西,那有什么不好呢?而且,Unitils可以轻松为您生成它,请参阅生成数据库结构的XSD或DTD。

如果dbunit帮助自动禁用外键约束作为其框架的一部分会更好,但是他们不这样做。他们确实会跟踪方言…为什么不为此使用它们?最终,所有这一切都迫使程序员浪费时间,而不能迅速起床并进行测试。

他们正在等待您的补丁。

同时,Unitils提供了透明处理约束的支持,请参阅禁用约束和更新序列。

3)XML很难编写。我不需要多说。他们还提供了很多方法来实现这一目标,我认为这只会使事情复杂化。只需提供一种真正可靠的方法即可完成。

我猜疼痛是主观的,但我不会感到疼痛,特别是在使用模式和自动完成功能时。您建议的银d是什么?

4)当您的数据变大时,跟踪id及其一致/正确的关系是一件大事。

保持它们很小,这是一种已知的最佳实践。您违反已知的最佳做法,然后抱怨…

另外,如果您一个月不从事任何项目,您如何还记得user_id 1是管理员,user_id 2是业务用户,user_id 3是工程师,user_id
4是其他东西?回去检查这是在浪费更多时间。除了任意数量之外,应该有一种有意义的方法来检索它。

是的,任务切换适得其反。但是,由于使用的是低级数据,因此必须知道它们的表示方式,除非您使用高级API,否则没有神奇的解决方案(但这不是DbUnit的目的)。

5)慢。我发现除非使用hsqldb,否则它的速度很慢。不一定是。还有很多方法可以弄乱它的配置,因为“开箱即用”并不容易。您必须经历一个驼峰才能使其正常工作。所有这一切都是鼓励人们不要使用它,或者对何时开始使用它感到生气。

这是数据库和JDBC固有的,不是DbUnit。如果您想使事情尽可能快,请使用像H2这样的快速数据库(如果您有更好的不可知论断方式来做事情,我将很高兴了解它)。

6)可能最令人讨厌的是,第一个条目必须包含所有值-甚至是空占位符-否则以后的行将不会选择您实际指定的列。

如在Unitils-Home-JavaPolis
2008
或单元测试:unitils&dbmaintain之类的演示文稿中提到的那样使用Unitils时,不是这样。

有什么让我满意的,还是我应该成为更好的数据库测试框架的下一个框架开发人员?

如果您认为可以使事情变得更好,则可以为现有解决方案做出贡献。如果那是不可能的,并且您认为可以创建杀手级数据库测试框架,那么我该说些什么。但是请不要忘记,繁琐的 *** 作很容易,使用您自己的解决方案提出解决方案的难度就较小。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5587113.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-14
下一篇 2022-12-14

发表评论

登录后才能评论

评论列表(0条)

保存