我有一个服务“S”,它具有生成报告并下载报告的逻辑。它是用spring-boot和java编写的。该数据由另一个系统“B”使用,该系统的数据库“C”中的数据需要放入报告中。
单击一个按钮,“B”从“C”查询数据并将其存储在 java pojo 类中,该类被写入 Excel 文件并存储在云中。这发生在“B”
我们想使用一些虚拟数据对“S”进行负载测试。当“B”向数据库发起查询时,我们能否以某种方式将示例结果集注入“B”,而不需要在“B”中进行任何代码更改?然后,该示例结果集将用于生成报告。 (B 的罐子附在“S”上)
我想知道我们是否可以使用 Mockito、JOOQ、testContainers 等任何测试框架来控制结果集中的内容,因为这不是单元测试场景或集成测试。这仅用于负载测试目的,将采取相关措施以防止其进入生产。
请告诉我你的看法。
我们可以使用带有范围编译的mockito来进行模拟,但我不确定是否建议在这种情况下使用这个或任何测试框架。
我无法对 Mockito 发表评论,因为我不知道该 API。关于您要求的其他库:
jOOQ 有
MockingConnection
,您可以在其中以编程方式模拟 JDBC API 这两种方法都可以帮助您生成虚拟结果集以满足您的目的。您不需要在应用程序中使用 jOOQ 来使其工作,因为这两种方法都充当 JDBC API 实现。
这将提供比模拟更强大的测试方法,因为您将能够集成测试您的代码。它将更接近高效的性能特征,因为您可以在 docker 容器内使用真正的数据库产品,具有所有事务行为等。使用数据库的集成测试方法通常是好的,但显然测试会比测试慢得多如果使用模拟。