当前位置: 首页 > 知识库问答 >
问题:

测试Spring批量作业继电器

陈奇希
2023-03-14

我试图测试一个执行读(从另一个应用程序获取数据)过程(简单计算)和写(到mongodb)的spring批处理作业

 @PostConstruct
    public void init(){
        employees.addAll(getListOfEmployeesBy(affectationMotifService.findAllRegistrationNumbers()));
    }

    public List<EmployeeForSalaryDTO> getListOfEmployeesBy(List<String> registrationNumbers){
        LOG.debug("request to get all the employees by registration numbers {}" , registrationNumbers);
        return coreResourceFeign.getAllEmployeesForSalaryByRegistrationNumbers(registrationNumbers).getBody();
    }
@RunWith(SpringRunner.class)
@SpringBootTest(classes = {SalaryApp.class, SecurityBeanOverrideConfiguration.class})
public class SalaryJobServiceTest {
    @Autowired
    @InjectMocks
    private SalaryJobService salaryJobService;

    @Test
    public void startJob() throws Exception {
        SalaryJobDTO SalaryJobDTO = salaryJobService.start(Collections.emptyList());
        Assert.assertNotNull(salaryJobDTO.getId());
    }
}

我不知道如何处理Spring批量测试。欢迎任何建议或帮助。

共有1个答案

芮安顺
2023-03-14

@PostConstruct将确保在创建对象后立即调用方法。Spring应用程序在启动时根据配置创建所有bean。这是预期的行为。如果您不想在应用程序启动期间调用您的方法,请移除@PostConstruct,您可以运行模拟依赖对象的测试。

相反,您应该使用readers read方法将数据加载到Reader。

 类似资料:
  • 我怎样才能停止一个工作在Spring批次?我尝试使用下面的代码来使用这个方法: 我尝试也完成了,失败了,但这个方法不工作,作业继续执行。有解决办法吗?

  • 我们在Spring批处理块分区架构的基础上编写了一个批处理基础框架。(主从并行处理模型)[1]

  • 在产品发布的最后一分钟,我发现Java Spring批处理有一个奇怪的问题。它进入无限循环。 这是我的配置: 记录总数为10条。因此,提交是在处理每一条记录之后进行的。我正在将结果写入Writer中的数据库。 我从阅读器中一个接一个地获取项目,处理并写入数据库。 它一直在运行,并将数据无限地插入表中。 观察结果是:提交间隔 如果有人提出一些解决方案/解决方法,在因为这个问题而举行生产发布时,这将对

  • 我们当前的代码库具有以下重要特征: 一个代码库-但是很多批处理(我们在批处理之间重用代码) 目前,我们在代码库中有多个main()方法,并且只有不同的shell脚本来调用正确的main类。 我希望在Spring Batch中解决以下问题: null 提前谢了。

  • 我很难找到这个问题的正确答案。当使用Spring批处理框架时,是否可以尝试在一个通用作业中解决所有的批处理?

  • 我正在为我们的文件上传过程执行一个spring批处理工作。我的要求是读取平面文件,应用业务逻辑,然后将其存储在DB中,然后发布一个Kafka消息。 我有一个基于块的步骤,它使用自定义的读取器、处理器和写入器。这个过程工作得很好,但是处理一个大文件需要很多时间。 处理一个有60k条记录的文件需要15分钟。我需要减少到5分钟以下,因为我们将消耗比这更大的文件。 根据https://docs.sprin