JPA 或 Hibernate 的测试数据生成器
是否有任何工具或库可用于使用 JPA 或实体 bean 生成测试数据?我相信这对于单元测试非常有帮助,在单元测试中我们可以拥有一个内存数据库,其中的数据在我们开始测试时动态生成。因此,不会与实际的数据库服务器进行通信,也不会浪费时间。
我只能找到 JPAMock。但它仍在开发中。如果有人能提供一个好的指导那就太好了。
多谢。
Are there any tools or libraries that can be used to generate test data using JPA or entity beans? I believe this will be very helpful for unit testing where we can have an in memory database with data dynamically generated just when we start our testing. So, there will be no communication with actual DB servers and not any waste of time.
I was only able to find JPAMock. But it is still under development. It would be nice if someone could provide a good pointer.
Thanks a lot.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您可以尝试 Random-JPA,这是一个旨在生成随机数据的框架。设置是最少的。
我开发了它,并在生产测试中使用了一年多。它工作得很好。虽然它目前支持 Oracle、MySQL 和 MySQL。具有完整功能的 MSSQL。
代码:https://github.com/kuros/random-jpa
教程:https://kuros.in/random-jpa
You could try out Random-JPA, a framework designed to generate random data. The setup is minimal.
I developed it and have been using it for over an year on our production tests. It works perfectly fine. Though it currently supports Oracle, MySQL & MSSQL with full feature.
Code: https://github.com/kuros/random-jpa
Tutorial: https://kuros.in/random-jpa
您可以使用Quickcheck 实现之一。快速检查方法独立于 JPA/Hibernate。您将基于 Quickcheck 生成域对象实例并保留它们或模拟持久层。
You could use one of the Quickcheck implementations. The quickcheck approach is independent from JPA/Hibernate. You would generate domain object instances based on Quickcheck and persist them or mock the persistence layer.
我将 DBUnit 与 H2 数据库以及 Untils & 结合使用。春天。工作得很好:
数据设置在 XML 文件中:
在 Spring 测试上下文中,您可以这样定义数据源:
您使用的方言:
org.hibernate.dialect.H2Dialect
最后在类路径中添加一个unitils.properties例如:
更新
I use DBUnit in conjunction with H2 database and untils & Spring. Works nicely:
The data is set in an XML file:
In Spring test context you define your datasource as such:
As dialect you use:
org.hibernate.dialect.H2Dialect
Finally a unitils.properties in your classpath like:
UPDATE