我想知道是否有人尝试过使用JMockit Hibernate Emulation?
Jmockit文档指出,当Hibernate Emulation测试运行时,它们不会使用O/R映射信息。所以,这意味着它不会测试O/R映射、HQL查询字符串、原生查询等。那么Hibernate Emulation到底有什么好处呢?可以只创建MyDAO模拟并将其用于测试。为什么要费心进行hibenrate模拟,只需模拟所有的DAO即可。你觉得呢?
谢谢。
发布于 2009-07-22 13:01:13
查看" JMockit /samples/orderMngmntWebapp“示例测试套件中的orderMngr.domain.customer.CustomerTest,该测试套件位于JMockit full发行版中。此测试类依赖于Hibernate Emulation。它可以通过"jmockit/build.xml“中的"sampleTests”目标运行。
我创建这个工具的动机主要是,当项目有数百个映射实体时,创建SessionFactory的时间太长。(在包含400+实体类的项目中大约需要20-30秒。)当然,这是在一套集成测试中进行的。对于单元测试套件,此工具没有用处。
其想法是,开发人员可以在本地开发环境中快速运行集成测试,以测试业务逻辑而不是持久性,同时让自动构建服务器定期运行完整的测试套件,而无需模拟。
请注意,在使用Hibernate仿真时,仍会测试HQL查询。伪实现将解析HQL字符串,并对内存中“持久化”的实体实例执行查询。不过,O/R映射信息会被忽略。
模拟DAO也是完全有效的,但是您的测试永远不会真正测试O/R映射、HQL查询或实际的数据库访问。使用Hibernate Emulation,您不需要创建模拟,但可以在提供类似于内存数据库的伪Hibernate实现上运行测试。
https://stackoverflow.com/questions/1111402
复制相似问题