java - 模拟使用 Roo 生成的持久层

标签 java unit-testing mocking spring-roo

我有一些 Roo 生成的实体,带有动态查找器。

我正在尝试对一个类进行单元测试,该类基本上从数据库中的不同表加载一些数据,运行一些计算,然后输出由这些计算结果组成的结构化对象,我想模拟持久层,以便能够在没有数据库的情况下运行测试(例如在 Jenkins 上)。

但是,我找不到一个简单的解决方案来执行此操作:我尝试添加 @MockStaticEntityMethods,但是 Roo 创建的查找器的静态方法返回 TypedQuery 而不是实际实体,所以我无法将模拟对象传递给 AnnotationDrivenStaticEntityMockingControl.expectReturn

我也尝试过使用 Mockito 和 Powermock,但我似乎仍然无法解决静态查找器方法返回 TypedQuery 而不是真实实体的问题。

那么模拟 Roo 生成的发现者的标准方法是什么?

最佳答案

您是否尝试过创建 TypedQuery 的模拟并将其设置为返回您的模拟。

此外,这不是您问题的完全答案,但您是否考虑过使用 HSQL 之类的东西进行集成测试?

关于java - 模拟使用 Roo 生成的持久层,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12583978/

相关文章:

Java:将 XML 文档解析为文本时出错

java - 是否有可能始终将 -Djava.library.path 从 POM 文件内部传递给 Maven 测试?

c++ - 模拟对象问题

node.js - 如何使用 Jest 模拟日期对象?

unit-testing - 我怎样才能 "sleep"一个 Dart 程序

android - 如何在抛出的异常中模拟 Crashlytics 静态方法

Java - int Counter 没有添加

java - (数组和字符串)Java 与 C 的区别

java - 测试时如何将模拟对象注入(inject)类?

c# - 单元测试 - 与外部依赖项隔离