gpt4 book ai didi

java - 为每个测试刷新 Repository Populator

转载 作者:行者123 更新时间:2023-11-30 07:16:18 28 4
gpt4 key购买 nike

我正在为 Spring Batch 作业编写集成测试。我想在每次测试之前使用存储库填充器将测试数据加载到内存数据库中。

到目前为止,我找到的示例似乎表明存储库填充器只会在上下文初始化时填充一次。这对我来说是个问题,因为每个测试方法都应该在存储库中加载自己的测试数据。

本质上,这就是我想要做的:

  1. 加载 Spring 上下文
  2. 初始化内存数据库并创建模式
  3. 测试前
    1. 使用存储库填充器加载测试数据
  4. 运行测试
  5. 测试后
    1. 从内存数据库中删除所有数据

我还没有找到一种简单的方法来执行此操作(特别是步骤 3.1)。我有一些想法,但我想看看是否有其他人也尝试过。

最佳答案

一个有趣的挑战。听起来你想要的是 ResourceReaderRepositoryPopulator 的一个变体,它以与 https://github.com/springtestdbunit/spring-test-dbunit/ 相同的方式被 TestExecutionListener Hook 。对 DbUnit 文件执行此操作。

删除操作只是对已插入的每个对象调用 repository.delete(object) 的情况。

听起来您正在尝试做的是 spring-test-dbunit 的 Spring Data 版本,您应该能够基于该代码加上:ResourceReaderRepositoryPopulator 和 AbstractRepositoryPopulatorFactoryBean。

关于java - 为每个测试刷新 Repository Populator,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17112101/

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