gpt4 book ai didi

java - JMockit hibernate 模拟

转载 作者:行者123 更新时间:2023-11-30 09:58:12 24 4
gpt4 key购买 nike

我想知道是否有人尝试过使用 JMockit Hibernate Emulation?

Jmockit 文档说当运行 Hibernate Emulation 测试时,它们不会使用 O/R 映射信息。所以,这意味着它不测试 O/R 映射、HQL 查询字符串、 native 查询等。那么 Hibernate Emulation 的真正好处是什么?可以只创建 MyDAO 模拟并将其用于测试。为什么要用 hibenrate 仿真来模拟所有的 DAO。你怎么看?

谢谢。

最佳答案

查看“jmockit/samples/orderMngmntWebapp”示例测试套件中的 orderMngr.domain.customer.CustomerTest,可在 JMockit 完整分发版中找到。这个测试类依赖于 Hibernate Emulation。它可以通过“jmockit/build.xml”中的“sampleTests”目标运行。

我创建这个工具的动机主要是当项目有数百个映射实体时,SessionFactory 创建时间太长。 (在具有 400 多个实体类的项目中大约需要 20-30 秒。)当然,这是在一套集成测试中。对于一组单元测试,此工具没有用。

当时的想法是,开发人员可以在本地开发环境中快速运行集成测试以测试业务逻辑而非持久性,同时让自动构建服务器定期运行完整的测试套件,无需模拟。

请注意,在使用 Hibernate 仿真时,HQL 查询仍然会被测试。伪造的实现将解析 HQL 字符串并针对“持久化”在内存中的实体实例执行查询。不过,O/R 映射信息将被忽略。

模拟 DAO 也是完全有效的,但是您的测试永远不会实际测试 O/R 映射、HQL 查询或实际的数据库访问。使用 Hibernate Emulation,您无需创建模拟,但可以在提供类似于内存数据库的东西的假 Hibernate 实现上运行测试。

关于java - JMockit hibernate 模拟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1111402/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com