[英]Triggering Spring batch jobs in JUnit test cases
的背景 :
我目前正在开发一个使用Spring Batch读取一组文件并将文件内容缓存在内存中的应用程序。 然后,缓存的数据由业务逻辑层使用,该业务逻辑层被分为不同的类,每个类都通过使用来自缓存的数据来执行特定的业务功能。
要求 :
我被分配了对业务逻辑层进行单元测试的任务。 由于业务逻辑层假设数据将在缓存中可用,因此我需要一种在单元测试中触发Spring批处理作业的方法,然后才能测试业务逻辑类。
问题:
我正在考虑编写一个父JUnit类,该类将由测试业务逻辑的所有JUnit类扩展。 这个父JUnit类将触发Spring批处理作业以在setUp方法中加载缓存。
在父JUnit类中触发Spring批处理作业的最佳方法是什么?
我的父src / test / java文件夹中的JUnit类可以访问src / main / resources / META-INF文件夹中的Spring作业上下文文件吗?
注意,目标是测试将使用Spring批处理完成的工作的类,而不是测试Spring批处理作业本身。
要回答您的特定问题:
为了从JUnit测试中启动Spring Batch作业,我们提供了JobLauncherTestUtils类。 可以在测试上下文中配置该类以启动与其关联的作业,然后将其连接到单元测试中。 您可以在此处的Spring Batch Samples模块中查看特定示例: https : //github.com/spring-projects/spring-batch/tree/master/spring-batch-samples 。
我假设您正在使用Maven,在这种情况下,测试类应该可以看到常规类所做的所有事情,因此可以。
附带说明一下,如果您要对业务代码进行单元测试,则可能要考虑不运行批处理作业并单独测试业务代码。 如果目标是对整个系统进行集成测试,那么您的方法很有意义。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.